코밍이의 하루

[JQuery] 탐색 선택자 - 위치 탐색 선택자 본문

웹언어 공부/JQuery

[JQuery] 탐색 선택자 - 위치 탐색 선택자

코밍이 2021. 8. 17. 17:16

1. 개발 환경

구분 내용
사용 언어 HTML5, CSS3, JS, jQuery
개발환경 Visual Studio Code
참고 도서 [Do it] 자바스크립트 + 제이쿼리 입문
웹브라우저 Chrome

2. 주요 문법

1) 탐색 선택자

- 기본 선택자로 선택한 요소 중 원하는 요소를 한 번 더 탐색해서 좀 더 정확하게 선택할 수 있음.

- 종류 : 위치 탐색 선택자 , 속성 탐색 선택자

 

2) 위치 탐색 선택자

- 배열의 인덱스를 사용하여 특정 요소를 좀 더 정확하게 선택할 수 있음.

종류 사용법 설명
$("요소 선택:first")
$("요소 선택").first()
$("li:first")
$("li").first()
전체 <li> 요소 중 첫 번째 요소만 선택
$("요소 선택:last")
$("요소 선택").last()
$("last")
$("li").last()
전체 <li> 요소 중 마지막 요소만 선택
$("요소 선택:odd") $("li:odd") <li> 요소 무리 중 홀수 인덱스 요소만 선택
$("요소 선택:even") $("li:even") <li> 요소 무리 중 짝수 인덱스 요소만 선택
$("요소 선택:first-of-type") $("li:first-of-type") <li> 요소 무리 중 첫 번째 요소만 선택
$("요소 선택:last-of-type") $("li:last-of-type") <li> 요소 무리 중 마지막 요소만 선택
$("요소 선택:nth-child(숫자)") $("li:nth-child(3)") <li> 요소 무리 중 세 번째 요소만 선택
$("요소 선택:nth-child(숫자n)") $("li:nth-child(3n)") <li> 요소 무리 중 3의 배수 번째에 있는 요소만 선택
$("요소 선택:nth-last-of-type(숫자)") $("li:nth-last-of-type(2)") <li> 요소 무리 중 마지막 위치로부터 두 번째에 있는 요소만 선택
$("요소 선택:only-child") $("li:only-child") 부모 요소 내에 <li> 요소가 1개뿐인 <li> 요소만 선택
$("요소 선택:eq(index)")
$("요소 선택").eq(index)
$("li:eq(2)")
$("li").eq(2)
<li> 요소 중 인덱스 2가 참조하는 요소를 불러옴
$("요소 선택:gt(index)") $("li:gt(1)") <li>요소 중 인덱스 1보다 큰 인덱스가 참조하는 요소를 불러옴
$("요소 선택:lt(index)") $("li:lt(1)") <li> 요소 중 인덱스 1보다 작은 인덱스가 참조하는 요소를 불러옴
$("요소 선택").slice(index) $("li").slice(2) <li> 요소 중 인덱스 2부터 참조하는 요소를 불러옴

 

3) first/last 선택자

- first 선택자 : 선택된 요소 중 첫 번째 요소만 선택

- last 선택자 : 선택된 요소 중 마지막 요소만 선택

기본형
1) $("요소 선택:first") 또는 $("요소 선택").first()
2) $("요소 선택:last") 또는 $("요소 선택").last()

 

4) even/odd 선택자

- even 선택자 : 선택한 요소 중 짝수 인덱스 요소 선택

- odd 선택자 : 선택한 요소 중 홀수 인덱스 요소 선택

기본형
$("요소 선택: even")
$("요소 선택:odd")

 

5) eq(index)/lt(index)/gt(index) 탐색 선택자

- eq(index) 탐색 선택자 : 선택한 요소 중 지정한 인덱스가 참조하는 요소만 선택

- lt(index) 탐색 선택자 : 선택한 요소 중 지정한 인덱스보다 작은 인덱스를 참조하는 요소만 선택

- gt(index) 탐색 선택자 : 선택한 요소 중 지정한 인덱스보다 큰 인덱스를 참조하는 요소만 선택

기본형
$("요소 선택:eq(index)") 또는 $("요소 선택").eq(index)
$("요소 선택:lt(index)")
$("요소 선택:gt(index)")

 

6) first-of-type/ last-of-type 선택자

- first-of-type 선택자: 선택한 요소의 무리 중 첫 번째 요소만 선택

- last-of-type 선택자: 선택한 요소의 무리 중 마지막에 위치한 요소만 선택

기본형
$("요소 선택:first-of-type")
$("요소 선택:last-of-type")

 

7) nth-child(숫자n) / nth-last-of-type(숫자) 선택자

- nth-child(숫자n) 선택자: 선택한 요소의 무리 중 지정한 숫자(배수)의 요소를 선택

- nth-last-of-type(숫자) 선택자: 선택한 요소의 무리 중 마지막에서 지정한 숫자의 요소를 선택

기본형
$("요소 선택:nth-child(숫자)")
$("요소 선택:nth-child(숫자n)")
$("요소 선택:nth-last-of-type(숫자)")

 

8) only-child / slice(index) 선택자

- only-child 선택자: 선택한 요소가 부모 요소에게 하나뿐인 자식 요소인 경우에 선택

- slice(start index, end index) 선택자: 선택한 요소의 지정 구간 인덱스의 요소를 선택

기본형
$("요소 선택:only-child")
$("요소 선택").slice(start index, end index)

 

3. 소스 코드 및 실행 결과

- jq_selec2_1_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 탐색 선택자 </title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("#menu li:first").css({"background-color" : "#ff0"});

          $("#menu li:last").css({"background-color" : "#0ff"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul id="menu">
          <li>내용1</li>
          <li>내용2</li>
          <li>내용3</li>
          <li>내용4</li>
      </ul>
  </body>
</html>

jq_selec2_1_test.html

- jq_selec2_2_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 탐색 선택자 </title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("#menu li:even").css({"background-color":"#ff0"});

          $("#menu li:odd").css({"background-color":"#0ff"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul id="menu">
          <li>내용1</li>
          <li>내용2</li>
          <li>내용3</li>
          <li>내용4</li>
      </ul>
  </body>
</html>

jq_selec2_2_test.html

- jq_selec2_3_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 탐색 선택자 </title>  
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("#menu li").eq(2)
          .css({"background-color":"#ff0"});

          $("#menu li:lt(2)")
          .css({"background-color":"#0ff"});

          $("#menu li:gt(2)")
          .css({"background-color":"#f0f"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul id="menu">
          <li>내용1</li>
          <li>내용2</li>
          <li>내용3</li>
          <li>내용4</li>
          <li>내용5</li>
      </ul>
  </body>
</html>

jq_selec2_3_test.html

- jq_selec2_4_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 선택자 </title>  
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("li:first-of-type")
          .css({"background-color":"#ff0"});

          $("li:last-of-type")
          .css({"background-color":"#0ff"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul>
          <li>내용1-1</li>
          <li>내용1-2</li>
          <li>내용1-3</li>
      </ul>
      <ul>
          <li>내용2-1</li>
          <li>내용2-2</li>
          <li>내용2-3</li>
      </ul>
  </body>
</html>

jq_selec2_4_test.html

- jq_selec2_5_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 탐색 선택자 </title>
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("#menu li:first").css({"background-color" : "#ff0"});

          $("#menu li:last").css({"background-color" : "#0ff"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul id="menu">
          <li>내용1</li>
          <li>내용2</li>
          <li>내용3</li>
          <li>내용4</li>
      </ul>
  </body>
</html>

jq_selec2_5_test.html

- jq_selec2_6_test.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8">
    <title> 선택자 </title>  
    <script src="js/jquery.js"></script>
    <script>
      $(function(){
          $("#menu1 li").slice(1,3)
          .css({"background-color":"#ff0"});

          $("li:only-child")
          .css({"background-color":"#0ff"});
      });
    </script>
  </head>
  <body>
      <h1>탐색 선택자</h1>
      <ul id="menu1">
              <li>내용1-1</li>
              <li>내용1-2</li>
              <li>내용1-3</li>
              <li>내용1-4</li>
      </ul>
      <ul id="menu2">
          <li>내용2-1</li>
      </ul>
  </body>
</html>

jq_selec2_6_test.html