본문 바로가기
IT/jQuery

[jquery] jquery 탐색 선택자 (위치 탐색 선택자)

by on sunday 2020. 2. 3.
728x90
반응형

탐색 선택자를 사용하면 기본 선택자로 선택한 요소 중 원하는 요소를 한번 더 탐색해서

좀 더 정확하게 선택할 수 있습니다.

 

위치 탐색 선택자 종류

종류 사용법 설명

$("요소 선택:first")

$("요소 선택").first()

$("li:first")

$("li").first()

전체 li 요소 중 첫 번째 요소만 선택합니다.

$("요소 선택:last")

$("요소 선택").last()

$("li: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 요소 중 끝에서 2번째에 있는 요소만 선택합니다.
$("요소 선택: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부터 참조하는 요소를 불러옵니다.

first/last 선택자

$("요소 선택:first") 또는 $("요소 선택").first()

$("요소 선택:last") 또는 $("요소 선택").last()

<script>
$(function(){
  $("#menu li:first")
  .css({"background-color":"orange"});

  $("#menu li:last")
  .css({"background-color":"gray"});
});
</script>
</head>
<body>
<div id="wrap">
  <h1 class="title">탐색 선택자</h1>
  <ul id="menu">
    <li>메뉴1</li>
    <li>메뉴2</li>
    <li>메뉴3</li>
    <li>메뉴4</li>
  </ul>
</div>
</body>

#menu 하위에 있는 li 중에

첫번째 li는 오렌지색 배경,

마지막 li는 회색 배경의 css가 적용되었습니다.

 

even / odd 선택자

<script>
$(function(){
  $("#menu li:even")
  .css({"background-color":"orange"});

  $("#menu li:odd")
  .css({"background-color":"gray"});
});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</h1>
    <ul id="menu">
      <li>메뉴1</li>
      <li>메뉴2</li>
      <li>메뉴3</li>
      <li>메뉴4</li>
    </ul>
  </div>
</body>

#menu 하위에 있는 li 중에

홀수(even) li는 오렌지색 배경,

짝수(odd) li는 회색 배경의 css가 적용되었습니다.

 

eq(index) / li(index) / gt(index) 탐색 선택자

eq(index)는 선택한 요소 중 지정한 인덱스가 참조하는 요소만 선택하고

lt(index)는 선택한 요소 중 지정한 인덱스보다 작은 요소만 선택합니다.

gt(index)는 선택한 요소 중 지정한 인덱스보다 큰 요소만 선택합니다.

 

$("요소 선택:eq(index)")  또는  $("요소 선택").eq(index)

$("요소 선택:lt(index)")

$("요소 선택:gt(index)")

 

<script>
$(function(){
  $("#menu li").eq(2)
  .css({"background-color":"orange"});

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

  $("#menu li:gt(2)")
  .css({"background-color":"red"});
});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</h1>
    <ul id="menu">
      <li>메뉴1</li> //index(0)
      <li>메뉴2</li> //index(1)
      <li>메뉴3</li> //index(2)
      <li>메뉴4</li> //index(3)
      <li>메뉴5</li> //index(4)
    </ul>
  </div>
</body>

#menu li중 index(2)는 오렌지 배경

lt(2) -> index(2)보다 작은 index(0,1)은 회색배경

gt(2) -> index(2)보다 큰 index(3,4)는 빨간색 배경 css가 적용되었습니다.

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

$("요소 선택:first-of-type")

$("요소 선택:last-of-type")

 

<script>
$(function(){
  $("li:first-of-type")
  .css({"background-color":"purple"});

  $("li:last-of-type")
  .css({"background-color":"skyblue"});

});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</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>
  </div>
</body>

두개의 ul에서

li중에 첫번째 태그에 보라색 배경이,

li중에 마지막 태그에 하늘색 배경이 적용된 걸 알 수 있습니다.

 

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

$("요소 선택:nth-child(숫자)")

-> 선택 요소 중 지정 숫자에 위치한 요소를 선택합니다.

 

$("요소 선택:nth-child(숫자n)")

-> 선택 요소 중 지정한 배수에 위한 요소를 선택합니다.

 

$("요소 선택:nth-last-child(숫자n)")

-> 선택 요소 중 마지막 위치에서 지정한 숫자에 위치한 요소를 선택합니다.

<script>
$(function(){
  $("#menu1 li:nth-child(1)")
  .css({"background-color":"purple"});

  $("#menu1 li:nth-child(2n)")
  .css({"background-color":"forestgreen"});

  $("#menu2 li:nth-last-child(2)")
  .css({"background-color":"orange"});

});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</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>
      <li>메뉴2-2</li>
      <li>메뉴2-3</li>
      <li>메뉴2-4</li>
    </ul>
  </div>
</body>

#menu1 하위메뉴 li중 첫번째 요소에 보라색 배경,

#menu1 하위메뉴 li중 2의 배수(1-2, 1-4)에 초록색 배경,

#menu2 하위메뉴 li중 끝에서 2번째(2-3)에 노란색 배경이 적용되었습니다.

 

only-child / slive(index)선택자

$("요소 선택:only-child")

-> 선택한 요소가 부모 요소에게 하나뿐인 자식 요소면 선택합니다.

 

$("요소 선택").slice(start index, end index)

-> slice(1,3)은 1초과 3이하의 요소를 선택합니다.

<script>
$(function(){
  $("#menu1 li").slice(1,3)
  .css({"background-color":"brown"});

  $("li:only-child")
  .css({"background-color":"hotpink"});

});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</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>
  </div>
</body>

#menu1 하위요소 li중 1초과 3이하 요소에 갈색 배경이,

li가 부모요소에게 하나뿐인 자식 요소인 #menu2의 li에 분홍색 배경이 적용되었습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글