KIC/JavaScript,CSS

day40 - JavaScript(DOM)

바차 2021. 8. 10. 18:44
반응형

[DOM]

-> 문서 객체 모델

 

-> 넓은 의미로는 웹 브라우저가 HTML 페이지를 인식하는 방식이다.

 

-> 좁은 의미로는 document 객체와 관련된 객체 집합

 

-> 사용시 HTML 페이지에 태그를 추가, 수정, 제거할 수 있다

 

 

-> 문서 객체 - 태그를 자바스크립트에서 이용할 수 있는 객체로 만드는 것을 뜻한다.

 

-> 태그를 html 페이지에 존재하는 html이나 body 태그를 뜻함

 

 

 

 

 

 

 

 

 

00 23 00 설명 듣기

[domEx1]

<!DOCTYPE html>
<html>

<head>
    <title>DOMContentLoaded</title>
    <script>
        //HTML 태그를 쉽게 만들 수 있는 콜백 함수를 선언하기
        const h1 = (text) => `<h1>${text}</h1>`

    </script>
    <script>
        document.body.innerHTML += h1('1번째 script 태그')

    </script>
</head>

<body>
    <script>
        document.body.innerHTML += h1('2번째 script 태그')
    </script>
    <h1>1 번째 h1 태그</h1>
    <script>
        document.body.innerHTML += h1('3번째 script 태그')
    </script>
    <h2>2번째 h2 태그</h2>
</body>

</html>

 

[domEx2]

-> DOMContentLoaded는 페이지가 로딩될때 자동으로 지정해두었던 콜백함수를 호출한다.

 

 

<!DOCTYPE html>
<html>

<head>
    <title>DOMContentLoaded</title>
    <script>
        //DOMContentLoaded 이벤트를 연결
        document.addEventListener('DOMContentLoaded', () => {
            const h1 = (text) => `<h1>${text}<h1>`
            
            // h1을 body에 넣겠다는 의미
            document.body.innerHTML += h1('DOMContentLoaded 이벤트 발생')
        })

    </script>

</head>

<body>

</body>

</html>

 

 

 

[domEx3]

<!DOCTYPE html>
<html>

<head>
    <meta charset="EUC-KR">
    <title>DOMContentLoaded</title>
    <script>

        document.addEventListener('DOMContentLoaded', () => {
            //요소를 읽어들인다.
            const header = document.querySelector('h1')


            //텍스트와 스타일을 변경한다.
            header.textContent = 'HEADERS'
            header.style.color = 'white'
            header.style.backgroundColor = 'black'
            header.style.padding = '10px'


        })

    </script>

</head>

<body>
    <h1></h1>
</body>

</html>

 

 

[domEx4]

<!DOCTYPE html>
<html>

<head>
    <meta charset="EUC-KR">
    <title>DOMContentLoaded</title>
    <script>

        document.addEventListener('DOMContentLoaded', () => {
            //요소를 읽어들인다.
            const headers = document.querySelectorAll('h2')


            //forEach로 여러개를 받을 수 있다.
            headers.forEach((header) => {
                header.textContent = 'HEADERS'
                header.style.color = 'white'
                header.style.backgroundColor = 'black'
                header.style.padding = '10px'
            })



        })

    </script>

</head>

<body>
    <h1></h1>
    <h1></h1>
    <!-- 이렇게 미리 지정해두었던 h2에서만 효과가 표현된다. -->
    <h2></h2>
    <h2></h2>
</body>

</html>

 

 

[domEx5]

-> #a 는 id      .a 는 클래스를 뜻한다.

<!DOCTYPE html>
<html>

<head>
    <meta charset="EUC-KR">
    <title>DOMContentLoaded</title>
    <script>

        document.addEventListener('DOMContentLoaded', () => {
            //요소를 읽어들인다.
            const a = document.querySelector('#a')
            const b = document.querySelector('#b')


            a.textContent = '<h1>textContent 속성</h1>'
            b.innerHTML = '<h1>innerHTML 속성</h1>'
        })



    </script>

</head>

<body>
    <div id="a"></div>
    <div id="b"></div>
</body>

</html>

 

[domEx6]

<!DOCTYPE html>
<html>

<head>
    <meta charset="EUC-KR">
    <title>DOMContentLoaded</title>
    <script>

        document.addEventListener('DOMContentLoaded', () => {
            let counter = 0;
            const h1 = document.querySelector('h1')

            h1.addEventListener('click', (event) => {
                counter++
                h1.textContent = `클릭 횟수: ${counter}`
            })
        })



    </script>
    <style>
        h1 {
            /* 클릭을 여러번 했을 때 글자가 선택되는 것을 막기 위한 스타일 설정 */
            user-select: none;
        }
    </style>
</head>

<body>
    <h1>클릭 횟수: 0</h1>

</body>

</html>

 

[domEx7]

<!DOCTYPE html>
<html>

<head>
    <meta charset="EUC-KR">
    <title>DOMContentLoaded</title>
    <script>

        document.addEventListener('DOMContentLoaded', () => {
            const h1 = document.querySelector('h1')
            const print = (event) => {
                let output = ''
                output += `alt: ${event.altKey}<br>`
                output += `ctrl: ${event.ctrlKey}<br>`
                output += `shift: ${event.shiftKey}<br>`
                output += `code: ${event.code !== 'undefined' ? event.code : event.keyCode}<br>`
                h1.innerHTML = output
            }

            document.addEventListener('keydown', print)
            document.addEventListener('keyup', print)


        })



    </script>
</head>

<body>
    <h1></h1>
</body>

</html>

 

 

300x250