console.log(parent.childNodes)
console.log(parent.children)
=> element는 node라는 객체에서 상속되어 만들어진 개념
<body>
<div class="parent">
<!--주석-->
<div class ="child"> 1 </div>
텍스트1
<div id = "child2" class= "child">2</div>
텍스트2
</div>
</body>
const el = document.getElementById('child2') //ID 잘못 입력시 null반환
console.log(el)
실행 결과:
<div id="child2" class="child">2</div>
const el = document.querySelector('.child:first-child')
console.log(el)
실행 결과:
<div class ="child">1</div>
const nodeList = document.querySelectorAll('.child')
console.log(nodeList)
nodeList.forEach(el => console.log(el.textContent)) //검색한 요소의 개수만큼 내부에 콜백을 반복적으로 호출(검색된 요소가 2이기 때문에 두번 반복)
//배열 데이터로 바꾸기
console.log(Array.from(nodeList).reverse()) //바로 배열 메서드 리버스 사용가능
실행 결과:
NodeList(2) [div.child, div#child2.child]
-> 배열 데이터처럼 보이지만 유사 배열
1
-> console.log(el.textContent)의 결과
2
-> console.log(el.textContent)의 결과
const el = document.querySelector('.child') //<div class ="child"> 1 </div> 부분
console.log(el.parentElement) //해당 부분의 부모 요소 반환
실행 결과:
<div class = "parent">...</div>
const el = document.querySelector('.child')
console.log(el.closest('div'))
console.log(el.closest('.hello')) //hello라는 클래스를 가진 요소는 없음
실행 결과:
<div class ="child"> 1 </div>
null
const el = document.querySelector('.child')
console.log(el.previousSibling)
console.log(el.nextSibling)
실행 결과:
#text
-> 줄바꿈 문자
텍스트1
const el = document.querySelector('.child')
console.log(el.previousElementSibling)
console.log(el.nextElementSibling)
실행 결과:
null
<div id = "child2" class= "child">2</div>
const el = document.querySelector('.parent')
console.log(el.children)
실행 결과:
HTMLCollection(2) [div.child, div#child2.child, child2: div#child2.child]
-> 유사배열
const el = document.querySelector('.parent')
console.log(el.firstElementChild)
console.log(el.lastElementChild)
실행 결과:
<div class ="child"> 1 </div>
<div id = "child2" class= "child">2</div>
<body>
<div class = "parent">
<div class="child">1</div>
<div class="child">2</div>
</div>
</body>
const divEl = document.createElement('div')
console.log(divEl)
const inputEl = document.createElement('input')
console.log(inputEl)
실행결과:
<div></div>
<input>
const parentEl = document.querySelector('.parent')
const el = document.createElement('div')
el.textContent = 'Hello'
parentEl.prepend(new Comment('주석'))
parentEl.append(el, 'Text!') //인수를 여러개 넣으면 순서대로 추가됨
const el = document.querySelector('.child')
el.remove()