getElementsByClassName()
getElementsByClassName()
함수는
주어진 요소의 클래스 이름에 해당하는 모든 요소를 HTMLCollection
객체로 반환합니다.
일치하는 요소가 없으면 빈 HTMLCollection
객체를 반환합니다.
반환되는 HTMLCollection
객체를 순회해서 각 요소에 대해 특정 작업을 수행할 수 있습니다.
HTMLCollection
은
웹 페이지의 HTML 문서 내에서 선택한 요소만을 문서 내 정렬된 순서대로 모아둔 집합입니다.
흔히 DOM 컬렉션이라 말하는 이 집합은 요소를 배열의 항목처럼 유사하게 다룰 수 있으며, 웹 페이지의 요소를 쉽게 조작할 수 있게 하는 객체입니다.
예제
getElementsByClassName()
함수가 반환하는 HTMLCollection
은 배열이 아니기 때문에 forEach()
함수를 바로 사용할 수 없습니다. HTMLCollection
은 배열과 유사하지만, 실제 배열이 아니므로 배열 메서드를 지원하지 않습니다. 하지만, Array.from()
또는 스프레드(...) 문법
을 사용해 배열로 변환하면 forEach()
를 사용할 수 있습니다.
코드 부연설명
forEach()
함수는 배열을 순회해서 각 요소를 콜백 함수로 처리하기 위한 함수입니다.
코드 부연설명
for
문은 특정 횟수나 범위만큼 반복하는 문입니다.
코드 부연설명
textContent
속성은 HTML 요소의 텍스트 콘텐츠를 가져오거나 설정합니다.
구문
매개변수
names |
찾으려는 클래스 이름에 해당하는 모든 요소입니다. 이 값은 대소문자를 구분하는 문자열입니다.
여러 클래스 이름은 공백으로 구분됩니다. |
---|
반환 값
- HTML 문서 내에서 주어진 클래스 이름에 해당하는 모든 요소를
HTMLCollection
객체로 반환합니다. - 일치하는 요소가 없으면 빈
HTMLCollection
객체를 반환합니다.
반환 값 예시
여러 클래스 이름은 공백으로 구분
여러 클래스 이름은 공백으로 구분해서 찾을 수 있습니다.
이때 여러 클래스 이름은 주어진 여러 클래그스의 이름을 모두 갖는 요소를 찾는다는 의미입니다.
다음은 클래스 이름 a
와 b
를 모두 갖는 요소를 찾는 예시입니다.
일치하는 요소의 n
번째 요소를 다루려면
일치하는 요소의 n
번째 요소를 다루려면 다음과 같이 할 수 있습니다.
getElementsByClassName()
함수는 유사 배열인 HTMLCollection
객체를 반환하는데, 배열처럼 인덱스로 접근할 수 있습니다.
다음은 HTML 문서 내의 a
클래스 이름을 가지는 첫 번째 요소를 다루는 예시입니다.
일치하는 요소의 개수 확인하기
일치하는 요소의 개수는 length
속성으로 쉽게 확인할 수 있습니다.
특정 요소 내에서 요소 찾기
getElementById()
함수는 오직 document
객체에서만 사용하는 메서드이지만,
getElementsByTagName()
함수나 getElementsByClassName()
함수는 특정 요소 객체 내에서도 사용할 수 있는 메서드입니다.
다음은 id
속성의 값이 "cn-food"
인 요소 내에서 a
클래스 이름을 가지고 있는 모든 요소를 찾는 예시입니다.
명세서
명세서 사양 | |
---|---|
document.getElementsByClassName()
|
DOM Standard #ref-for-dom-document-getelementsbyclassname① |
element.getElementsByClassName()
|
DOM Standard #ref-for-dom-element-getelementsbyclassname |
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
getElementsByClassName()
|
1 | 12 | 3 | 3.1 |