본문 바로가기
프로그래밍/jQuery

jQuery API 정복 - 현재 요소의 바로 다음 요소, next()

by zoo10 2011. 6. 9.

.next()

원문 링크 http://api.jquery.com/next/

.next( [selector] )Returns : jQuery

개요 : 선택 집합의 각 요소별로 바로 다음에 오는 요소를 반환해 줍니다. 만일 선택자(selector)가 인자로 주어졌다면 그 선택자와 일치하는 요소만 반환이 됩니다.

  • .next( [ selector ] )
  • selector 요소를 선택하기 위해 필요한 선택자 문자열

.next() 함수는 DOM 트리를 기준으로 하여 바로 다음 요소를 새로운 jQuery 객체로 만들어 반환해 줍니다.

이 함수에는 $() 함수에 사용할 수 있는 모든 선택자 표현이 올 수 있습니다. 만일 그 선택자가 주어졌고 그 선택자에 의해 선택될 수 있는 바로 다음 요소들이 있다면 jQuery 객체가 반환되고 그렇지 않다면 제외됩니다. 어렵지 않으시죠? 그런데 아래 예제를 보면 조금 헷갈립니다. 아래 예제2에서 마저 설명드리겠습니다.

그럼 여기서 .next() 함수의 간단한 예제로 개념을 익혀보도록 하겠습니다.

<ul>
   <li>list item 1</li>
   <li>list item 2</li>
   <li class="third-item">list item 3</li>
   <li>list item 4</li>
   <li>list item 5</li>
</ul>

3번째 부터 시작해서 그 다음으로 오는 것을 찾고 싶으시다면 아래와 같이 스크립트를 작성하시면 됩니다.

$('li.third-item').next().css('background-color', 'red');

이 스크립트의 결과는 item 4 가 빨간색으로 바뀌게 됩니다. 선택자 표현을 포함하지 않았기 때문에 선택된 요소인 item 3 다음으로 오는 요소를 무조건 선택하게 됩니다. 만일 선택자 표현을 추가하면 다음 요소를 선택하기 전에 선택자에 의한 검증을 실시하게 됩니다.

말만 어렵습니다. 예제보면 별거 아닙니다. 이게 뭔소리야 하고 짜응 내고 계신가요?? ^^

예 제  
사용이 불가한 버튼을 찾아서 그 옆에 "this button is disabled" 라는 텍스트를 추가합니다.

<!DOCTYPE html>
<html>
<head>
  <style>
 
  span { color:blue; font-weight:bold; }
  button { width:100px; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div><button disabled="disabled">First</button> - <span></span></div>
  <div><button>Second</button> - <span></span></div>
 
  <div><button disabled="disabled">Third</button> - <span></span></div>
<script>$("button[disabled]").next().text("this button is disabled");</script>
 
</body>
</html>

미리보기

요거요거 아주 쉽습니다. 따로 설명 드리지 않아도 다들 아실거라 믿고 패수~

 

예 제  
p 태그 바로 다음으로 오는 요소를 찾습니다. 단, "selected"라는 클래스를 사용하는 녀석만 찾아야 합니다.

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <p>Hello</p>
 
  <p class="selected">Hello Again</p>
  <div><span>And Again</span></div>
<script>$("p").next(".selected").css("background", "yellow");</script>
 
</body>
</html>

미리보기

음, 아주 무난한 예제인듯 보입니다. 마크업을 조금 바꾸어 보면 더 이해가 잘됩니다. 아래 처럼 바꿔서 확인해 보십시요.

<p class="selected">Hello</p>  
<p class="selected">Hello Again</p>  
<p>Hello</p>  
<p class="selected">Hello Again</p>  
<p class="selected">Hello Again</p>  
<div>sdf</div>  
<div class="selected"><span>And Again</span></div>

 

next() 함수를 쓸일이 종종 있어 보입니다. 그리 어려운 내용이 아닙니다. 그냥 직관적으로 사용하시면 됩니다. 이미지 옆에 주석을 단다든지 하는 작업들 말이죠.

그럼 즐프하세요.

※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.