The Document Object Model
문서의 구조화된 표현을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있게 돕는다. DOM은 nodes와 objects로 문서를 표현한다. 이들은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다. -MDN-
console.dir()
console.dir(document.body)
document.body.children
: 바디의 자식 객체를 조회한다. Node.parentElement
parent Element
, or null
if the node either has no parent, or its parent isn’t a DOM Element.document.getElementById(아이디)
: 아이디를 사용해 문서 객체를 선택
document.querySelector(선택자)
: 선택자를 사용해 문서 객체를 선택
document.getElementsByName(이름)
: name 속성으로 여러 개의 문서 객체를 선택
document.getElementsByClassName(클래스)
: class 속성으로 여러 개의 문서 객체를 선택
document.querySelectorAll(선택자)
: 선택자로 여러 개의 문서 객체를 선택
document.createElement('div')
// 생성 후 요소 할당
const tweetDiv = document.createElement('div')
document.body.append(tweetDiv)
container
에 넣기 위해서는 먼저 container
를 찾아야 한다. querySelector
의 첫 번째 인자로 셀렉터(selector)를 전달하여 확인할 수 있습니다. 셀렉터로는 HTML 요소("div"
), id("#tweetList"
), class(.tweet
) 세 가지가 가장 많이 사용됩니다.querySelector
에 '.tweet'
을 첫 번째 인자로 넣으면, 클래스 이름이 tweet
인 HTML 엘리먼트 중 첫 번째 엘리먼트를 조회할 수 있습니다.querySelectorAll
을 사용합니다.container
의 맨 마지막 자식 요소로 tweetDiv
를 추가합니다.const container = document.querySelector('#container')
const tweetDiv = document.createElement('div')
container.append(tweetDiv)
oneDiv.textContent = 'dev';
console.log(oneDiv) // <div>dev</div> 문자열 추가
oneDiv.classList.add('tweet')
console.log(oneDiv) // <div class="tweet">dev</div> 클래스 추가
const container = document.querySelector('#container')
container.append(oneDiv)
[setAttribute](https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute)
const container = document.querySelector('#container')
const tweetDiv = document.createElement('div')
container.append(tweetDiv)
tweetDiv.remove() // 이렇게 append 했던 요소를 삭제할 수 있다.
const container = document.querySelector('#container');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
const container = document.querySelector('#container');
while (container.children.length > 1) {
container.removeChild(container.lastChild);
}
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
tweet.remove();
})
// or
for (let tweet of tweets){
tweet.remove()
}