querySelectorAll()
querySelectorAll()
함수는
HTML 문서나 특정한 요소 내에서 지정한 CSS 선택자와 일치하는 모든 요소를 반환합니다.
코드 부연설명
length
속성은 문자열, 배열, 유사 배열의 길이를 반환합니다.
코드 부연설명
for
반복문은 특정 횟수나 범위만큼 반복하는 문입니다. 배열, 유사 배열에도 적용할 수 있습니다.
코드 부연설명
textContent
속성은 HTML 요소의 텍스트 콘텐츠를 가져오거나 설정합니다.
기능
querySelectorAll()
함수의 기능에 대해 알아보겠습니다.
HTML 문서 전체에서 요소 찾기
HTML 문서(document
객체) 전체에서 모든 <p>
요소를 찾으려면 다음의 예시와 같이 작성할 수 있습니다.
특정한 요소 객체 내에서 요소 찾기
HTML 특정한 요소 내의 모든 <p>
요소를 찾으려면 다음의 예시와 같이 작성할 수 있습니다.
코드 부연설명
querySelector()
함수는 HTML 문서나 특정한 요소 내에서 지정한 CSS 선택자와 일치하는 첫 번째 요소 객체를 반환합니다.
이 예시에서는 특정한 부모 요소 객체 내에서도 사용할 수 있음을 보여주고 있습니다.
순회를 통해서 찾은 요소 다루기
CSS 선택자와 일치하는 모든 요소를 NodeList
객체의 목록으로 반환합니다.
이 목록은 유사 배열입니다.
이 목록의 요소는 순회를 통해서 다룰 수 있습니다.
다음은 querySelectorAll()
함수로 HTML 문서 내의 <li>
요소들을 찾아서 순회를 통해 특정 작업을 수행하는 예제입니다.
querySelectorAll()
함수로 반환하는 NodeList
객체는 유사 배열 형태를 가집니다.
NodeList
객체는 배열과 유사하게 요소에 인덱스를 사용하여 접근할 수 있고, length
속성을 통해 요소의 수를 확인할 수 있습니다. 그러나 NodeList
객체는 진짜 자바스크립트 배열이 아니라 유사 배열(iterable) 객체입니다.
그러나, 유사 배열임에도 불구하고 배열을 순회할 때 사용하는 forEach()
함수는 사용할 수 있습니다.
구문
매개변수
selectors |
문자열 형식의 유효한 CSS 선택자입니다. |
---|
반환 값
상황별 예제
상황별 예제를 다루겠습니다.
특정 클래스 이름의 모든 요소에 스타일 적용하기
이 예제에서는 클래스 이름이 "highlight"
인 모든 요소를 선택하고 해당 요소들의 스타일을 변경합니다.
특정 요소 유형에 대한 정보 출력하기
이 예제에서는 id
가 "myList"
인 목록 요소의 모든 <li>
요소를 선택하고 각 요소의 텍스트 내용을 콘솔에 출력합니다.
링크 목록에 이벤트 리스너 추가하기
이 예제에서는 id
가 "myLinks"
인 목록의 모든 링크(<a>
) 요소를 선택하고 각 링크에 클릭 이벤트 리스너를 추가합니다. 링크를 클릭하면 경고 메시지가 표시됩니다.
일치하는 요소가 없을 때 빈 NodeList
객체를 반환
이 예제에서는 id
가 "nonExistentElement"
로 설정된 요소는 없으므로 querySelectorAll()
로 선택한 #nonExistentElement
선택자는 일치하는 요소가 없어 빈 nodeList
를 반환합니다. 그런 다음 자바스크립트에서 if...else
문을 사용하여 결과를 확인하고 콘솔에 메시지를 출력합니다. 결과는 "일치하는 요소가 없습니다."가 될 것입니다.
DOM의 변경 사항을 실시간(또는 live)으로 반영하지 않음
코드 부연설명
getElementById()
함수는 HTML 문서 내에서 주어진 문자열과 값이 일치하는 id 속성을 가진 요소 객체를 반환합니다.
- 김밥
- 라면
- 떡볶이
<li> 요소의 개수: 3
새로운 요소를 추가하면 querySelectorAll()
함수는 실시간(또는 live)으로 반영하지 않아서, <li>
요소의 개수가 바뀌지 않는 것을 확인할 수 있습니다.
명세서
명세서 사양 | |
---|---|
querySelectorAll()
|
DOM Standard #ref-for-dom-parentnode-queryselectorall① |
브라우저 호환성
함수 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
querySelectorAll()
|
1 | 12 | 3.5 | 3.1 |