오늘은 DOM에 대해 알아 보았다.
2-1. getElementsByTagName: tag를 이용하는 방법(배열로 가져옴)
2-2. getElementById: id를 이용하는 방법(querySelector보다 조금 더 빠른 편)
2-3. getElementsByClassName: class를 이용하는 방법(배열로 가져옴)
하지만 위의 방법이 번거로운 면이 있기 때문에 아래의 방법을 상대적으로 더 사용하는 편.
2-4. querySelector: tag, class, id 모두 가져올 수 있음. 위에서부터 먼저 일치하는 element를 가지고 옴
2-5. querySelectorAll: tag, class, id에 해당하는 모든 element를 배열 형태로 가져옴(NodeList), iteration과 종종 함께 사용됨
innerHTML: 선택한 element의 안의(미만 개념) html 코드를 str 형태로 가져옴
outerHTML: 선택한 element를 포함하는 안(이하 개념)의 html 코드를 str 형태로 가져옴
접근한 후 내가 직접 html코드(tag포함)를 작성하여 변경할 수 있다.
말 그대로 html의 tag를 javascript를 통해 만들 수 있는 method
부모.appendChild(내가 생성한 tag)
element.insertAdjacentHTML(position, text);
position
에 대한 사용 방법(아래)<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->
:first-child
와 유사:last-child
와 유사기본 역할: 지정한 element의 class이름을 모두 가져온다.(배열 형태로)
11-1. element.classList.add('', '', '', ...)
.add()
를 사용하여 원하는 class 이름을 원하는 대로 추가할 수 있다.
11-2. element.classList.remove('')
는 반대의 역할
11-3.element.classList.toggle('abc')
abc라는 클래스가 있을 때는 remove
, 없을 때는 add
해주는 on/off 스위치와 같은 역할
11-4. element.classList.contains('찾고싶은className')
찾고싶은className이 element에 있는지 없는지 확인(true/false)
addEventListener(event type, even발생시 실행될 code)
와 removeEventListener(event type, even발생시 실행될 code)
removeEventListener
사용 시, 두번째 parameter에 직접 같은 코드의 callback func을 사용하지 말고, 반드시 그 함수의 이름을(reference 형태로) 작성해야 한다.let obj1={a:'a'}
와 let obj2={a:'a'}
에서 obj1
과 obj2
는 동일하지 않음과 같은 이유다.(각각 다른 메모리 내 주소를 참조하고 있는 이유)한번 공부했던 내용이라 어려웠던 점은 없었다.
이번 강의는 실습을 하는 내용은 아니었기에(물론 알고 있는 내용들) 다음 강의에서부터 본격적 실습이 있을 예정이다.