서론
자주 사용하는 JavaScript의 querySelector(All) 메소드의 문법을 정리해보자.
✏️참고!
querySelector() 함수는 지정한 CSS 선택자와 일치하는 첫 번째 요소 객체를 반환한다.
일치하는 요소가 없으면 null을 반환한다.
지정한 선택자와 일치하는 모든 요소의 목록이 필요한 경우 querySelectorAll() 함수를 사용해야 한다.
적용
✔️1. 기본적인 선택자
// id
document.querySelector("#btnPrev")
// class
document.querySelector(".btnPrev")
// 태그
document.querySelectorAll("button")
// 속성
document.querySelectorAll("[name]"); // name 속성이 있는 요소 모두
document.querySelectorAll("[value='test']") // value 속성이 test 인 요소 모두
// And, Or
// ID가 'btnPrev' 인 요소와 Button 태그들을 선택
document.querySelectorAll("#btnPrev, button")
// button 태그이면서 아이디가 'btnPrev' 인 요소를 선택
document.querySelectorAll("button#btnPrev")
// 예시
document.querySelectorAll('input[type="checkbox"]');
document.querySelector("input[name=useYn]")
document.querySelector("[name=searchWord]");
document.querySelector("meta[name='csrf_token']");
✔️2. 계층 선택자
// div 바로 밑에 있는 input 태그를 선택 (바로 밑에 있는 자식들만)
document.querySelectorAll("div > input")
// div 태그 밑에 있는 input 태그를 선택
document.querySelectorAll("div input")
✔️3. check 관련 (체크박스, 라디오 버튼)
// checked 된 value 값 구하기
document.querySelector("input[name=contentsType]:checked").value
document.querySelector("input[type=radio]:checked").value
document.querySelector("input[type=radio]:checked").getAttribute("data-value")
// 특정 value 값을 가진 선택자에 check 옵션 주기
document.querySelector("input[name='urlType'][value='" + dto.urlType + "']").checked = true;
// check 여부 리턴 (true/false)
document.querySelector("input[name=useYn]").checked
✔️4. ^ , $, *, ! 선택자
// * 어느곳에라도 있는지
// 'value'라는 속성의 값에 'A'라는 문자가 포함된 요소 선택
document.querySelectorAll("[value*='A']")
// ^ 시작
// 'value'라는 속성의 값이 'A'로 시작하는 요소 선택
document.querySelector("[value^='A']")
// $ 끝
// 'value'라는 속성의 값이 'n'으로 끝나는 요소 선택
document.querySelectorAll("[value$='n']")
// ! 아닌 것
// 'value'라는 속성의 값이 'test'이 아닌 요소 선택
document.querySelectorAll("[value!='test']")
✔️5. 필터 선택자
- even, odd : 짝수/홀수 인덱스의 요소만 필터 (인덱스는 0부터 시작)
// 짝수번째 div태그만 선택
document.querySelectorAll("div:even")
// 홀수번째 div태그만 선택
document.querySelectorAll("div:odd")
- nth-child(index) : 형제 요소 중 index에 해당하는 요소만 필터
// li 태그의 형제들중 2번째 요소만 출력
document.querySelectorAll("li:nth-child(2)")
- first, last: 첫 번째, 마지막 요소만 필터
// 첫번째 li태그와, 마지막 li태그 요소만 선택
document.querySelectorAll("li:first")
document.querySelectorAll("li:last")
- eq(index), gt(index), lt(index): index번째 요소, index번째 이후 요소 선택, index번째 이전 요소 선택
(index는 0부터)
// 3번째 li태그 선택
document.querySelector("li:eq(2)")
// 3번째이후 li태그 선택
document.querySelectorAll("li:gt(2)")
// 3번째이전 li태그 선택
document.querySelectorAll("li:lt(2)")
- selected, checked, disabled, enabled, focus : 요소 상태에 따른 필터
// selected된 option만 선택
document.querySelectorAll("option:selected")
// checked된 checkbox만 선택
document.querySelectorAll("input[type='checkbox']:checked")
// disabled된 input태그만 선택
document.querySelectorAll("input:disabled")
// enabled된 input태그만 선택
document.querySelectorAll("input:enabled")
// focus된 input태그만 선택
document.querySelectorAll("input:focus")
- not(원치 않는 선택자) : 원치않는 선택자를 필터
// input태그중 disabled되지 않은 요소만 선택
document.querySelectorAll("input:not(:disabled)")
document.querySelectorAll(".temp .btn:not(:nth-child(1))")
document.querySelectorAll(".temp .btn:not([value='" + 동적 데이터 + "'])")
- has(포함된 선택자) : 포함된 선택자를 포함하고 있는 선택자를 필터
- contains(문자열) : 문자열을 포함한 선택자를 필터
// h1태그를 포함한 div태그만 선택
document.querySelectorAll("div:has(h1)")
// '테스트' 라는 텍스트를 포함한 p 태그를 선택
document.querySelectorAll("p:contains('테스트')")
- hidden, visible : 숨겨진, 보이는 요소만 필터
// 숨겨진 div태그를 선택
document.querySelectorAll("div:hidden")
// 보이는 div태그를 선택
document.querySelectorAll("div:visible")
'Front > JavaScript & jQuery' 카테고리의 다른 글
[jQuery] jquery validation 사용 시 submit 막기 (0) | 2024.02.16 |
---|---|
[jQuery] Sortable 드래그앤드랍 drag&drop 순서 변경 후 처리하기 (0) | 2024.02.16 |
input이 하나인 경우, enter키를 누르면 form submit 되는 현상 막기 (0) | 2023.07.18 |
[jQuery] 제이쿼리 validation 활용하여 유효성 검사(ajax 실시간 통신, 유효성 실패 메시지 변경) (0) | 2023.05.02 |
[JavaScript & JQuery] 동적으로 생성된 요소에 이벤트 바인딩 (0) | 2023.04.26 |
댓글