JavaScript2_DOM 트리 여행하기
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>JS with Codeit</title> </head> <body> <div id="content"> <h2 id="title-1">Cat-1</h1> <ul id="list-1"> <li>Ragdoll</li> <li>British Shorthair</li> <li>Scottish Fold</li> <li>Bengal</li> <li>Siamese</li> <li>Maine Coon</li> <li>American Shorthair</li> <li>Russian Blue</li> </ul> <h2 id="title-2">Cat-2</h1> <ul id="list-2"> <li>Sphynx</li> <li>Munchkin</li> <li>Persian</li> <li>Norwegian Forset</li> <li>Turkish Angora</li> <li>Bombay</li> <li>Selkirk Rex</li> <li>Munchkin</li> </ul> </div> <script src="index.js"></script> </body> </html>
// DOM 트리 여행하기 const myTag = document.querySelector('#list-1'); console.log(myTag); // 형제 요소 노드: 이전 형제와 다음 형제로 구분됨. // sibling: 형제 console.log(myTag.previousElementSibling); console.log(myTag.nextElementSibling); // 부모 요소 노드-->parentElement프로퍼티 사용.content의 부모태그인 body태그 선택됨 console.log(myTag.parentElement); // 자식 요소 노드-->children 프로퍼티는 해당 요소의 자식 요소를 담고 있다. console.log(myTag.children[1]);//->1번 인덱스인 브리티쉬 숏헤어 console.log(myTag.firstElementChild);//->랙돌 console.log(myTag.lastElementChild);//->러시안 블루
요소 노드를 이동시킬 때 사용하는 프로퍼티들을 정리해봅시다.
DOM 트리를 구성할 때
브라우저가 HTML 코드를 해석할 때 각 코드들은 상황에 맞게 node를 생성하고 DOM 트리를 구성하게 되는데요.
HTML 태그는 요소 노드가 되고,
문자들은 텍스트 노드,
그리고 주석도 주석 노드로 DOM 트리에 반영됩니다.
<!DOCTYPE HTML> <html> <head> <title>JavaScript</title> </head> <body> I Love JavaScript <!-- I Love Codeit --> </body> </html>
그런데 텍스트 노드 중에서 붉은 테두리가 있는 부분을 통해 알 수 있듯 태그와 태그사이에 줄 바꿈과 들여쓰기로 인한 띄어쓰기도 텍스트 노드(Text라고 표시된 부분)로 생성된 모습을 확인할 수 있습니다.
지금 예시는 간단하기 때문에 어느 정도 DOM 트리를 예상할 수 있지만, 조금만 더 코드가 복잡하거나 혹은 코드의 스타일이 일정하지 않은 경우에는 이런 줄 바꿈과 들여쓰기로 인해 생성된 텍스트 노드의 존재를 파악하기가 쉽지 않을 수 있습니다.
그래서 방금 본, 모든 노드가 공통으로 갖고 있는 프로퍼티를 활용한다면, 예상치 못한 텍스트 노드를 선택하게 되어 의도하지 않은 결과를 만들어 낼 가능성이 커지게 됩니다.
일반적으로 우리가 다루고자 하는 대상은 태그!
자바스크립트로 웹 문서를 다룰 때는 아무래도 텍스트 노드보다는 요소 노드를 다룰 경우가 더 많을 겁니다.
만약 여러분이 의도하는 대상이 HTML 태그라면 요소 노드에 대한 이동 프로퍼티를 활용하는 것이 훨씬 더 안전하겠죠?
그래도 상황에 따라서는 요소 노드가 아닌 노드들을 이동시켜야할 수도 있으니 모든 노드가 공통으로 갖고 있는 속성들도 잘 기억해주세요.
잘 기억해 두시면 충분히 도움이 될겁니다! :)
Author And Source
이 문제에 관하여(JavaScript2_DOM 트리 여행하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimhyesu-_-/JavaScript2DOM-트리-여행하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)