개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.31 01:18

document.querySelectorAll(selector) 사용 시 오류 해결 방법

목록
  • Unity마법사 4일 전 2025.05.31 01:18
  • 25
    1
제가 최근에 HTML 문서에서 CSS 선택자(selector)를 사용하여 요소를 선택할 때 document.querySelectorAll(selector) 함수를 사용했습니다. 하지만 요소를 선택하는 데 문제가 생겨서 도움을 청해 왔습니다.

제가 사용한 코드는 다음과 같습니다.

javascript

const elements = document.querySelectorAll('div.class');

console.log(elements);



위 코드는 HTML 문서에서 class가 'class'인 div 요소를 모두 선택하여 elements 변수에 저장합니다. 하지만 console.log(elements)로 출력한 결과는 비어있는 NodeList를 반환합니다.

이러한 문제가 발생하는 이유를 모르겠습니다. CSS 선택자(selector)가 제대로 작성되어 있는지 확인했습니다.

다음과 같은 CSS 선택자는 제대로 작동하나요?

css

div.class {

  background-color: blue;

}



위 CSS 선택자가 제대로 작동하는지 확인하고 싶습니다.

제가 사용한 코드를 보아서는 document.querySelectorAll(selector) 함수가 제대로 작동하는 것처럼 보이지만, 실제로 요소를 선택하지 못하는 것 같습니다.

이러한 문제가 발생하는 이유를 알려주실 수 있는지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    document.querySelectorAll(selector) 함수는 CSS 선택자를 사용하여 HTML 문서 내의 요소를 선택하는 데 사용됩니다.

    요소를 선택하지 못하는 이유는 selector의 작성 방법에 있습니다.

    selector의 작성 방법은 다음과 같습니다.

    - class 선택자 : .class
    - id 선택자 : #id
    - 태그 선택자 : 태그 이름
    - 조합 선택자 : 태그 이름.class, 태그 이름#id

    위 코드에서 사용한 selector는 div.class로, class 선택자와 태그 선택자를 조합한 형식입니다.

    이러한 selector를 사용하여 요소를 선택하는 데 문제가 발생하는 이유는 class 선택자가 class 이름과 중복되는 경우가 있기 때문입니다.

    예를 들어, HTML 문서 내에 div 태그가 여러 개가 있고, 각 태그에 class가 class로 지정되어 있는 경우, document.querySelectorAll('div.class') 함수는 해당 요소를 선택하지 못합니다.

    이러한 문제를 해결하기 위해 selector를 수정하여 class 선택자만 사용하거나, 태그 선택자와 class 선택자를 분리하여 사용할 수 있습니다.

    예를 들어, selector를 .class로 수정하여 사용할 수 있습니다.

    #hostingforum.kr
    javascript
    
    const elements = document.querySelectorAll('.class');
    
    console.log(elements);
    
    


    또는, 태그 선택자와 class 선택자를 분리하여 사용할 수 있습니다.

    #hostingforum.kr
    javascript
    
    const elements = document.querySelectorAll('div.class');
    
    console.log(elements);
    
    


    위 코드에서 사용한 CSS 선택자는 다음과 같습니다.

    #hostingforum.kr
    css
    
    div.class {
    
      background-color: blue;
    
    }
    
    


    이러한 CSS 선택자는 class 선택자와 태그 선택자를 조합한 형식으로, 위에서 설명한 selector의 작성 방법을 따릅니다.

    위 CSS 선택자가 제대로 작동하는지 확인하기 위해, HTML 문서 내에 div 태그를 하나 생성하고, class를 class로 지정합니다.

    #hostingforum.kr
    html
    
    


    이러한 HTML 문서를 사용하여, 위에서 설명한 CSS 선택자를 사용하여 요소를 선택하는 데 문제가 발생하지 않습니다.

    따라서, 위에서 설명한 selector의 작성 방법을 따르고, selector를 수정하여 class 선택자만 사용하거나, 태그 선택자와 class 선택자를 분리하여 사용할 수 있습니다.

    2025-05-31 01:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,910건 / 45 페이지

검색

게시물 검색