JavaScript/기초

JAVASCRIPT만으로 화면 구현하기(innerHTML)

svdjcuwg4638 2023. 5. 11. 10:17

javacript로 원래없던 태그를 추가하고 클래스를 부여 합계와 평균값을 추가해서 사용자에게 보여주기

 

    <div id="root"></div>

    <script>
 		// 위 html태그중 id = root안에 태그를 넣을거라서 불러와준다.
        const root = document.getElementById('root')
        const arr = [
            { name: '이지은', kor: 100, eng: 99, mat: 87 },
            { name: '홍진호', kor: 22,  eng: 22, mat: 22 },
            { name: '유재석', kor: 95,  eng: 92, mat: 97 },
            { name: '신동엽', kor: 100, eng: 84, mat: 92 },
            { name: '강호동', kor: 85,  eng: 62, mat: 75 },
            // 보이는바와 같이 국어 수학 영어점수만있고 합계와 평균은 없는 상태
        ]

        arr.forEach(dto => {
        	// 합계와 평균값을 구하여 놓고
            const sum = dto.kor + dto.eng + dto.mat
            const avg = (sum / 3).toPrecision(4)
            
            const item = document.createElement('div')
            // div태그 생성 <div></div>
            
            item.className = 'item'
            // 클래스 부여 <div calss="item"></div>
            
            item.innerHTML += `<div class="name">${dto.name}</div>`
            // 	<div calss="item">
            //		<div class="name">${dto.name}</div>
            //	</div> 
            // 위와같은 형태로 밑에도 똑같이 들어갈것이다.
            item.innerHTML += `<div class="kor">${dto.kor}</div>`
            item.innerHTML += `<div class="eng">${dto.eng}</div>`
            item.innerHTML += `<div class="mat">${dto.mat}</div>`
            item.innerHTML += `<div class="sum">${sum}</div>`
            item.innerHTML += `<div class="avg">${avg}</div>`

            root.appendChild(item)
            // 이후 root안에 넣어주며 하나의 row가 완성되고 
            // 그 행에는 이름, 과목별점수,합계, 평균이 입력되게 된다.
        })
    </script>