2011-09-01 43 views
2

jquery的下一個方法是尋找下一個兄弟。但我需要不是兄弟姐妹的下一個元素。我只需要迭代選擇器中的下一個元素。 例如:jQuery next方法替代

$('.wrapper .parent div').next(); // in here next method looks first element 
// in selector and get next sibling of it. 

我想要的是匹配下一個元素在選擇器中。簡單地調用每個方法將提供給我,但我不需要迭代整個收集。

切片方法將幫助我迭代manualy通過控制我,但提供切片參數使它更難使用。

什麼可以是另一種解決方案。

回答

1

使用jQuery eq方法並將索引傳遞給它。它將匹配元素的集合減少到指定索引處的元素。

$('.wrapper .parent div').eq(1);//Whatever index you need pass into it. It is 0 based. 

http://api.jquery.com/eq/

+0

@AnyOne - 這對你有幫助嗎? – ShankarSangoli

0

也許試試$(".wrapper .parent div:nth-child(2)")取而代之?

$(".wrapper .parent div:nth-child(" + i++ + ")")爲下一組功能,其中i是第一個你想要得到的。

JQuery nth-child selector documentation

+0

我更新了問題。我不是在尋找第二個。我想迭代manualy。 – AnyOne

+0

OP不查找子元素。 – ShankarSangoli

3

如果你有一個jQuery選擇在其多個對象,也有許多可以遍​​歷或得到該列表中各個元素的方式。

這告訴你有多少集合中:

$('.wrapper .parent div').length 

這讓你在集合中的任何項目的HTML DOM元素(取決於你傳遞什麼號碼作爲參數傳遞給get()

$('.wrapper .parent div').get(0); 

這可以讓你的jQuery用於任何項目集合中(取決於你傳遞什麼號碼作爲參數傳遞給eq()

$('.wrapper .parent div').eq(0); 

您可以通過整個集合多種方式進行迭代。您可以使用.each()

$('.wrapper .parent div').each(function(index) { 
    // "this" will be set to the DOM element you are iterating in the collection 
}); 

或者,您可以遍歷手動幾種不同的方式:

var items = $('.wrapper .parent div'); 
for (var i = 0; i < items.length; i++) { 
    // items.get(i) is the DOM element 
} 

或者,你甚至可以只將對象轉換成DOM元素的數組:

var domArray = $('.wrapper .parent div').makeArray(); 
for (var i = 0; i < domArray.length; i++) { 
    // domArray[i] is the DOM element 
}