본문 바로가기
Web/JS & TS

[Javascript/자바스크립트] CSS 선택자를 사용하는 querySelector, querySelectorAll를 통해 요소 선택하기

by LasBe 2022. 2. 4.
반응형

CSS 선택자 종류


document.querySelector(선택자)
document.querySelectorAll(선택자)

 

CSS 선택자를 사용하는 querySelector를 알아보기 위해 먼저 CSS 선택자의 종류부터 알아보겠습니다.

 

다음 표와 같은 키워드를 사용해 특정 요소들을 가져올 수 있습니다.

이름 선택자 형태 설명
태그 선택자 태그
특정 태그를 가진 요소를 추출
아이디 선택자 #아이디
특정 id 속성을 가진 요소를 추출
클래스 선택자 .클래스
특정 class 속성을 가진 요소를 추출
속성 선택자 [속성 = 값]
특정 속성 값을 갖고 있는 요소를 추출
후손 선택자 선택자1 선택자2
선택자1 아래에 있는 선택자2를 선택

 

 

 

querySelector


querySelector는 위와 같은 css 선택자를 이용해 html 문서 내 첫번째 타겟 요소를 반환합니다.

 

동일한 선택자 형태를 갖고 있는 객체가 있더라도 html 문서 내 첫번째를 나타내는 요소 하나만 반환합니다.

 

그럼 여러개의 h1 태그에 querySelector를 이용해 글자 색상을 빨간색으로 바꿔보겠습니다.

<body>
    <h1>h1 - 1</h1>
    <h1>h1 - 2</h1>
    <h1>h1 - 3</h1>

    <script>
        const h1 = document.querySelector('h1')
        h1.style.color = 'Red'
    </script>
</body>

결과

역시나 선택자에 h1 태그를 넣어주었는데도 첫번째 h1 요소만 색상이 바뀐 것을 알 수 있습니다.

 

 

 

querySelectorAll


querySelectorAll는 사용법이 querySelector과 사용법이 동일하지만 모든 타겟 요소를 배열의 형태로 반환합니다.

 

선택자 사이에 ( , )를 사용한다면 여러 요소를 함께 가져올 수 있습니다.

 

반환을 배열 형태로 해주기 때문에 타겟 요소을 조작한다면 for, forEach 같은 반복문을 사용해주어야 합니다.

 

그럼 다음 코드로 요소를 선택해 글씨 색상을 모두 빨간색으로 바꿔 보겠습니다.

<body>
    <h1 id="h1Id">h1 - 1</h1>
    <h1 id="h1Id">h1 - 2</h1>
    <h1 class="h1Class">h1 - 3</h1>

    <script>
        const h1 = document.querySelectorAll('#h1Id, .h1Class')
        
        h1.forEach((item) => {
            item.style.color = 'Red'
        })
    </script>
</body>

결과

querySelectorAll을 사용해 id와 클래스 선택자를 함께 선택해서 반환 받았습니다.

 

forEach 반복문을 사용해 색상을 변경시켜주었고 원하는 결과를 받아냈습니다.

반응형

댓글


오픈 채팅