인프런 커뮤니티 질문&답변

최우석님의 프로필 이미지
최우석

작성한 질문수

인터랙티브 웹 개발 제대로 시작하기

3개의 문 4

childNodes 중에서 특정 class를 가진 요소는 어떻게 찾아야할까요?

작성

·

1.6K

0

elem.childNodes 중 특정 class를 찾는건 어떻게 하나요??

elem.childNodes.classList.contains('class');

로 하면 못찾는거같더라구요

for(let i = 0; i < elem.childNodes.length; i++) {

    elem.childNodes.classList.contains('class');

}

도 안되고,, 어렵네욤,,,

답변 2

3

1분코딩님의 프로필 이미지
1분코딩
지식공유자

childNodes로 접근하면 엘리먼트노드 외에 텍스트 노드들도 다 포함이 되기 때문에

각 노드의 nodeType을 체크해 주셔야 합니다(nodeType  === 1 이 엘리먼트 노드).

for(let i = 0; i < elem.childNodes.length; i++) {

    if (elem.childNodes[i].nodeType === 1) {

      console.log(elem.childNodes[i].classList.contains('class'));

    }

  }

이런 식으로 해보시면 원하는 동작이 될거에요~

하지만 저는 childNodes를 사용하는 방식 보다는

elem.querySelectorAll('class') 로 원하는 클래스를 가진 자식 엘리먼트들의 목록을 가져오는 방식을 많이 사용합니다.

1

최우석님의 프로필 이미지
최우석
질문자

아아..querySelector 가 document.랑 세트로 머리속에 박혀서 그렇게 생각을 못했네요,,,!! 감사합니다 ㅎㅎ

최우석님의 프로필 이미지
최우석

작성한 질문수

질문하기