Front-End/JavaScript

[자바스크립트] 선택자 별 DOM 요소 접근하기(Class, Id, Tag, QuerySelector)

merryna 2021. 5. 25. 11:05
반응형

1. id 선택자 : getElementById()

<body>
<div id="container">
	<h1 id="tittle>id로 선택하기</h1>    
</div>
    
 <script>
 // id로 받아서 클릭하면 폰트 사이즈 조절하는 함수
 document.getElementById("tittle").onclick = function () {
 	this.style.fontsize = "2em"
  }
 </script>
 </body>

 

2. Class 선택자 : getElementsByClassName()

 

*class는 id와 다르게 웹 문서 안에서 여러 번 사용 가능하기 때문에 Elements

<body>
  <div id="container">
      <span class="content">1</span>    
      <span class="content">2</span>  
  </div>
 </body>

HTMLCollection : 여러 개의 HTML 요소를 담고 있는 자료 형식으로 배열과 비슷함 

document.getElementsByClassName("content")

▶ HTMLCollection(2) [span.content, span.content]

 

*클래스 요소 중 1개의 요소에만 접근하고 싶을 때

//클래스로 접근하여 첫번째 클래스의 스타일 변경 (밑줄)
document.getElementsByClassName("content")[0].style.textDecoration = "underline"

3. TAG : getElementsByTagName()

 

// h2 태그의 배경 색상을 #eee로 바꾸기
document.getElementsByTagName("h2").style.backgroundcolor = "#eee"

 

*class와 동일하게 특정 요소에만 접근할 수 있음 

 document.getElementsByTagName("h2")[0].style.backgroundcolor = "#eee"

 

4. QuerySelector(), QuerySelectorAll()

: id, class, tag 모두 가능

// id
document.QuerySelector("#tittle")
// class (한 문서에 여러 번 사용 가능하여 QuerySelectorAll() 함수 사용
document.QuerySelectorAll(".content")

반환된 값은 NodeList로 표기 : 여러 개의 노드를 모아 놓은 것으로 배열과 비슷함

// NodeList의 인덱스 사용
document.QuerySelectorAll(".content")[1].style.backgroundColor = "yellow"

 

 

*getElementById() vs QuerySelector()

Element : 요소 노드까지만 접근 (웹 요소만 변경할 시 사용)

 

QuerySelector(), QuerySelectorAll()

: 요소노드, 텍스트 노드, 속성노드까지 접근 (웹 요소뿐 아니라 요소의 텍스트나 속성 변경, 새로운 노드 추가할 시 사용)

반응형