JavaScript

자바스크립트의 DOM과 Event

한민규 2022. 11. 7. 06:00

DOM이란

DOM은 프로그래밍 언어와 독립적이다. 주로 자바스크립트를 사용하지만, DOM의 구현은 어떠한 언어에서도 가능하다

DOM은 Document Object Model의 약자로 문서 객체 모델이라고 번역하며, 트리형태로 구조화한다.

문서객체란 html의 <html>, <span>, <div> 등을 말한다. 

즉 자바스크립트에서는 DOM을 통해 html, css 등을 변경할 수 있는 것이다.

 

event란

event란 웹 브라우저가 알려주는 HTML 요소에 대한 사건의 발생을 의미한다.

 

자바스크립트는 이렇게 발생한 이벤트에 반응하여 특정 동작을 수행할 수 있다.

따라서 클라이언트 측 자바스크립트를 비동기식 이벤트 중심의 프로그래밍 모델이라고 한다.

 

예를 들어 사용자가 클릭했을 때 어떤 동작을 하게 해주는 click이벤트를 만들어주고, 시용자가 클릭했을때 클릭 이벤트가 실행되게 해주는 것이다. 

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input id="id" type="text" placeholder="아이디를 적어주세요."> <br><br>
    <input id="password" type="password" placeholder="비밀번호를 입력해주세요."> <br><br>
    <button id="btn">버튼</button>
    <h1>유저목록</h1>
    <ul></ul>
    <script>
        const id = document.querySelector("#id")
        const password = document.querySelector("#password")
        const botton = document.querySelector("#btn")
        const ul = document.querySelector("ul")

        btn.addEventListener("click", () => {
            //아이디나 비번이 비어있을경우
            if (id.value == "" || password.value == "")
                alert("아이디 또는 비밀번호가 빈 값입니다")
            //둘다 값이 입력되어 있을경우
            else {
                const li = document.createElement("li")
                li.innerHTML = `아이디 : ${id.value},   비밀번호 : ${password.value}`
                ul.append(li)
                id.value = ""
                password.value = ""
            }
        })
    </script>
</body>

</html>

위와 같은 경우 버튼에 이벤트를 줬고, 아이디 비밀번호를 입력하고 버튼을 누르면 이벤트를 받아서 리스트를 생성해 주는 것이다.