jQuery下一个方法替代

时间:2011-09-01 00:47:27

标签: javascript jquery

jquery的下一个方法是寻找下一个兄弟。但我需要下一个不是兄弟姐妹的元素。我只需要迭代选择器中的下一个元素。 例如:

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

我想要的是选择器中的下一个匹配元素。简单地调用每个方法都会提供给我,但我不需要迭代整个集合。

切片方法将帮助我通过控制我手动迭代,但提供切片参数使其更难使用。

什么是另一种解决方案。

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

使用jQuery eq方法并将索引传递给它。它将匹配元素集减少到指定索引处的元素。

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

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

答案 2 :(得分:0)

或许尝试$(".wrapper .parent div:nth-child(2)")

$(".wrapper .parent div:nth-child(" + i++ + ")")用于下一个设置功能,其中i是您想要获得的第一个。

JQuery nth-child selector documentation