• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

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

19.05.20 17:13 작성 조회수 1.19k

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

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

최우석님의 프로필

최우석

질문자

2019.05.22

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