getElementByID()
getElementsByTagName()
getElementsByClassName()
getElementsByName()
getElementByID()
는 1개의 element를 반환함.
그 이외의 것은 HTMLCollection을 반환하며 그것은 유사배열임
HTML 문서의 로드가 완료된 document에 자바스크립트 코드를 이용하여 추가하고 싶은 HTML 태그를 나타내는 DOM 객체를 생성하여 DOM 트리에 직접 삽입 가능
즉, 자바스크립트에서도 html의 요소들에 접근 할 수 있음
createElement("태그이름")
innerHTML
innerText
setAttritube("속성명","속성값")
var exampleDiv = document.createElement("div");
exampleDiv.innerHTML = "div 만들어보기";
exampleDiv.setAttritube("id","exDiv");
<div id = "exDiv">
div 만들어보기
</div>
/* 같은 동작을 함 */
참고 ) https://developer.mozilla.org/ko/docs/Web/API/Element/insertAdjacentHTML
element.insertAdjacentHTML(position,text);
const $body = document.getElementsByTagName('body');
$body.style.backgroundColor = '색상이름';
// 이렇게하면 오류남 -> undefined뜸. 유사배열이라서
$body[0].style.backgroundColor = '색상이름';
// 인덱스를 지정해주어야함
유사배열 → 배열 변환시, map과 filter 함수를 사용할 수 있음
const 변수명 = [...바꾸고싶은유사배열명]
const 변수명 = Array.from(바꾸고싶은유사배열명)
☑️ map, filter은 타겟이 배열일 때만 사용가능하기 때문에 유사배열에는 적용시키지 못함
→ 모두 사용가능한 forEach를 많이 사용함
참고 ) https://velog.io/@chloeee/getElementById-그리고-querySelector-차이점
querySelector()
: 해당 조건을 만족하는 첫번째 element만 선택
querySelectorAll()
: 해당 조건을 만족하는 여러개 선택 -> NodeList(유사배열) 리턴
☑️ 공통점 ) 유사배열 → map, filter 사용 X
☑️ 차이점 ) NodeList는 forEach사용 가능, HTMLCollection은 forEach사용 X
→ 따라서, NodeList를 리턴해주는 query 셀렉터를 더 많이 사용