Person: 1 2 3 4 5 HTML에서 1. DOM을 설명 2. 사용법 3. 예제를 10개 알려주세요.
ChatGPT:
DOM(Document Object Model)은 HTML, XML 및 XHTML 문서의 프로그래밍 인터페이스입니다. DOM은 문서의 구조화된 표현을 제공하며, JavaScript와 같은 스크립트 언어를 사용하여 문서의 내용, 구조 및 스타일을 동적으로 조작할 수 있게 합니다. DOM은 트리 구조로 표현되며, 각 요소는 노드(Node)로 표현됩니다. DOM은 웹 페이지의 모든 요소에 대한 추상화된 표현을 제공하여 스크립트가 문서 구조, 스타일 및 콘텐츠에 액세스하고 수정할 수 있게 합니다.
DOM을 사용하기 위해서는 다음과 같은 단계를 거칩니다:
웹 페이지의 HTML 구조를 파싱하여 DOM 트리를 생성합니다.
DOM 트리에는 HTML 문서의 모든 요소가 노드로 포함됩니다.
스크립트 언어를 사용하여 DOM 노드에 액세스하고 조작할 수 있습니다.
DOM 메서드와 속성을 사용하여 문서의 구조, 스타일 및 콘텐츠를 변경할 수 있습니다.
변경된 DOM은 웹 페이지에 실시간으로 반영되어 사용자에게 업데이트된 콘텐츠를 제공합니다.
다음은 HTML DOM을 사용한 예제 10개입니다:
(1) HTML 요소에 접근하여 내용 변경하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html > <html > <head > <script > function changeText ( ) { document .getElementById ("myElement" ).innerHTML = "새로운 내용" ; } </script > </head > <body > <p id ="myElement" > 원래 내용</p > <button onclick ="changeText()" > 텍스트 변경</button > </body > </html >
(2) 요소의 속성 변경하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html > <html > <head > <script > function changeColor ( ) { document .getElementById ("myElement" ).style .color = "red" ; } </script > </head > <body > <p id ="myElement" > 내용</p > <button onclick ="changeColor()" > 색상 변경</button > </body > </html >
(3) 새로운 요소 생성하여 문서에 추가하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html > <html > <head > <script > function addElement ( ) { var newElement = document .createElement ("p" ); newElement.innerHTML = "새로운 요소" ; document .body .appendChild (newElement); } </script > </head > <body > <button onclick ="addElement()" > 요소 추가</button > </body > </html >
(4) 요소 숨기기/보이기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <!DOCTYPE html > <html > <head > <script > function toggleElement ( ) { var element = document .getElementById ("myElement" ); if (element.style .display === "none" ) { element.style .display = "block" ; } else { element.style .display = "none" ; } } </script > </head > <body > <p id ="myElement" > 내용</p > <button onclick ="toggleElement()" > 숨기기/보이기</button > </body > </html >
(5) 이벤트 처리하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <!DOCTYPE html > <html > <head > <script > function showMessage ( ) { alert ("버튼이 클릭되었습니다!" ); } </script > </head > <body > <button onclick ="showMessage()" > 클릭</button > </body > </html >
(6) 요소 제거하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html > <html > <head > <script > function removeElement ( ) { var element = document .getElementById ("myElement" ); element.parentNode .removeChild (element); } </script > </head > <body > <p id ="myElement" > 제거될 요소</p > <button onclick ="removeElement()" > 요소 제거</button > </body > </html >
(7) 요소의 클래스 변경하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <!DOCTYPE html > <html > <head > <script > function toggleClass ( ) { var element = document .getElementById ("myElement" ); element.classList .toggle ("highlight" ); } </script > <style > .highlight { background-color : yellow; } </style > </head > <body > <p id ="myElement" > 내용</p > <button onclick ="toggleClass()" > 클래스 변경</button > </body > </html >
(8) 요소의 속성 값 가져오기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <!DOCTYPE html > <html > <head > <script > function getAttributeValue ( ) { var element = document .getElementById ("myElement" ); var value = element.getAttribute ("data-value" ); alert ("속성 값: " + value); } </script > </head > <body > <p id ="myElement" data-value ="123" > 내용</p > <button onclick ="getAttributeValue()" > 속성 값 가져오기</button > </body > </html >
(9) 요소의 위치 변경하기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <!DOCTYPE html > <html > <head > <script > function moveElement ( ) { var element = document .getElementById ("myElement" ); var container = document .getElementById ("container" ); container.appendChild (element); } </script > <style > #container { height : 200px ; width : 200px ; border : 1px solid black; } </style > </head > <body > <div id ="container" > <p id ="myElement" > 이동할 요소</p > </div > <button onclick ="moveElement()" > 요소 이동</button > </body > </html >
(10) 폼 데이터 읽기:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <!DOCTYPE html > <html > <head > <script > function submitForm ( ) { var name = document .forms ["myForm" ]["name" ].value ; var email = document .forms ["myForm" ]["email" ].value ; alert ("이름: " + name + ", 이메일: " + email); } </script > </head > <body > <form name ="myForm" > <label for ="name" > 이름:</label > <input type ="text" id ="name" name ="name" > <br > <label for ="email" > 이메일:</label > <input type ="email" id ="email" name ="email" > <br > <input type ="button" value ="제출" onclick ="submitForm()" > </form > </body > </html >
위 예제들은 간단한 DOM 조작을 보여주기 위한 것이며, DOM을 사용하여 HTML 요소를 조작하고 동적으로 변경하는 다양한 방법을 보여줍니다. DOM은 웹 개발에서 매우 중요한 개념이며, 이를 통해 웹 페이지의 동적인 기능과 상호작용을 구현할 수 있습니다.