본문 바로가기
Frontend/JavaScript

[Javascript] getElement, querySelector로 요소 검색하기

by joy_95 2022. 1. 11.

document.getElementById  혹은 id를 사용해서 요소 검색하기

<div id="elem">
    <div id="elem-countent">Element</div>
</div>

<script>
let elem = document.getElementById("elem");
console.log(elem);
elem.style.background = 'red';

 

querySelectorAll

✔️ 주어진 css 선택자에 대응하는 요소 모두를 반환.

✔️ css 선택자를 활용할 수 있음

: hover, :active, :last-child

let elements = document.querySelectorAll('ul > li:last-child');

for(let elem of elements){
    console.log(elem.innerHTML);
}

 

querySelector

✔️ 주어진 CSS 선택자에 대응하는 요소 중 첫 번째 요소를 반환.

 

 

matches

✔️ CSS선택자와 일치하는지 여부를 판단해줌. 일치하면 true, 아니면 false

📌 요소들의 배열을 순회할 때 원하는 요소만 걸러내고자 할 때 유용하다.

 

<HTML>

<a href="http://example.com/file.zip">...</a>
<a href="http://ya.ru">...</a>
<div class="text">text is...</div>

<JS>

for(let elem of document.body.children){
	//href 속성값이 zip으로 끝나는 a 태그 요소를 찾아 href 반환.
	if(elem.matches('a[href$="zip"'){
    	console.log("주어진 CSS 선택자와 일치하는 요소 :" + elem.href);
    }
}
//일치 요소 :http://example.com/file.zip

 

closest

✔️ 자기 자신을 포함하여 CSS선택자와 일치하는 가장 가까운 조상 요소를 찾아준다.

 

<HTML>

<h1>목차</h1>

<div class="contents">
  <ul class="book">
    <li class="chapter">1장</li>
    <li class="chapter">2장</li>
  </ul>
</div>

<JS>

let chapter = document.querySelector('.chapter');

console.log(chapter.closest('.book'));
console.log(chapter.closest('.contents'));
console.log(chapter.closest('h1'));

 

contains

✔️ 자기 자신이거나 해당 요소를 포함하고 있으면 true를 반환한다.

elemA.contains(elemB)

 

요약

- 대부분 편리한 querySelector or querySelectorAll을 사용한다.

- elem.maches는 해당 CSS선택자와 일치하는지 여부를 검사해준다.

이용하면 요소들을 순회할 때 조건에 맞는 요소들만 반환할 수 있다.

- elem.closest 는 CSS 선택자와 일치하는 가장 가까운 조상 요소를 탐색한다.(자기 자신도 포함)

- elem.contains 는 요소가 속하거나 일치할 때 true를 반환한다.

 

Reference

반응형