2011-04-07 9 views
1

가 어떻게 모든 요소를 ​​선택할 수있는 페이지에 나중에 어떤 요소 다음에 나오는 모든 요소를, 선택 최소한 달성하고자하는 구조 또는 설명의 샘플? hierarchy jQuery selectors을 확인 했습니까?JQuery와 :

답변

0

는 참조 this

$('selector').nextALL('selector') 

을하는 다른 방법을 참조 당신이 당신의 '특정 요소를'식별하는 방법이 nextAll

$('div.third-item').nextAll("div") 
1

당신의 코드 또는 일부를 제공 할 수

페이지에 즉 나중에 특정 요소 다음에 나오는
1

나는 간단한 방법이 있다고 생각하지 않습니다. 진짜 질문은 왜 당신이 원할 것입니까? 어쨌든, 정말로 필요한 경우 .nextAll(), .each() 및 .children()의 조합이 도움이 될 것입니다.

var nodes = []; 

$('#original').nextAll().each(function() { 
    nodes.push(this); 
    $(this).children().each(function() { 
    // some recursive function to add a deep set of children 
    } 
} 

그러나, 다시, 당신은 아마 뭔가 다른 일을해야한다.

1

? 특정 ID를 사용하고 있습니까? 또는 단지 태그 이름.

'특정 요소'로 이름을 지정한 각 태그에 id를 추가하고 nextall()을 사용하여 ID 뒤에 모든 내용을 표시 할 수도 있습니다. 이것은 단순한 추측입니다.

7

당신이 말하는 요소가 모두 형제 인 경우을 서로 연결하면 .nextAll()이 사용하는 기능입니다.

요소가 페이지의에 어디에서나 중첩되어있는 경우 에 나타날 수있는 경우 jQuery (버전 1.4 이후)는 항상 문서 순서로 요소를 반환한다는 이점을 활용할 수 있습니다. 언제든지 .add() 컬렉션에.

그러므로 기본 아이디어는 "시작"요소 앞 또는 뒤에 있는지 여부에 관계없이 모든 요소를 ​​먼저 선택한 다음 "시작"요소를 컬렉션에 추가하는 것입니다. 그런 다음 정렬 된 요소를 반복하여 "시작"요소의 위치를 ​​찾을 수 있습니다. 그런 다음이 위치 후 단순히 .slice() 모든 요소 :

var start = '#start'; 
var all = 'p'; 
var index; 

var afters = $(all).add(start).each(function (i) { 
    if ($(this).is(start)) { 
     index = i; 
     return false; // quit looping early 
    } 
}).slice(index + 1); 

행동 here에서를 참조하십시오.