<script>
태그를 이용<script src="ex.js"></script>
<script>
를 만나면 해석을 잠시 멈추고, <script>
를 먼저 실행.자바스크립트에서 DOM은 document
객체에 구현되어 있음.
console.dir
이 유용하다.console.log
와 달리 DOM을 객체의 모습으로 출력함..children
/ 자식이 여럿일 때 첫 번째 찾기 → .children[0]
.parentElement
.appendChild()
: 한 노드를 특정 부모 노드의 자식 노드 리스트 중 마지막 사직으로 붙임. 만약 주어진 노드가 이미 문서에 존재하는 노드를 참조하고 있다면, 현 위치에서 새로운 위치로 이동 ( 복사 x )새로운 element 생성
document.createElement('div') // 새로운 div element 생성
생성한 element를 트리 구조와 연결
const exDiv = document.createElement('div')
document.body.append(exDiv) // body element에 append
element 조회
const firstEx = document.querySelector('.ex')
// 클래스 이름이 ex인 HTML element 중 첫 번째 조회
const firstEx = document.getElementByClass('ex')
// 이렇게도 사용 가능
const exs = document.querySelectorAll('.ex')
// 클래스 이름이 ex인 모든 HTML element를 유사 배열로 받아옴.
// 배열처럼 for문을 사용할 수 있지만, 이것이 배열은 아니다.
UPDATE
exDiv.textContent = 'aaa'; // 비어있는 element에 문자열을 입력
exDiv.classList.add('ex') // element에 ex 클래스를 추가
REMOVE
exDiv.remove() // append 했던 element 삭제
// 반복문으로 자식 엘리먼트가 남아있지 않을 때까지 삭제하는 방법
const container = document.querySelector('#container');
while(container.firstChild){ // 첫 번째 자식이 존재하면
container.removeChild(container.firstChild); // 첫 번째 자식을 제거
}
element.classList.add('hide')
→ hide 클래스를 추가해줌으로 안보이게 할 수 있음.element.classList.remove('hide')
→ hide 클래스를 제거해줌으로 다시 보이게 할 수 있음.on
접두어가 붙는다. ex) onclick, onkeyup..
// 1번
btn.onclick = function() {
console.log('버튼 클릭');
}
// 2번
btn.addEventListener('click', function() {
console.log('버튼 클릭');
});
// 이벤트 핸들러와 이벤트 리스너에는 차이가 있는데 후의 TIL에서 서술
// 3번
function handler() {
console.log('버튼 클릭');
}
btn.onclick = handler;
// 이벤트 속성(onclick)에 이벤트 핸들러를 등록할 때에는 함수 그 자체로 등록해야 함.