jquery的下一个方法是寻找下一个兄弟。但我需要下一个不是兄弟姐妹的元素。我只需要迭代选择器中的下一个元素。 例如:
$('.wrapper .parent div').next(); // in here next method looks first element
// in selector and get next sibling of it.
我想要的是选择器中的下一个匹配元素。简单地调用每个方法都会提供给我,但我不需要迭代整个集合。
切片方法将帮助我通过控制我手动迭代,但提供切片参数使其更难使用。
什么是另一种解决方案。
答案 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.
答案 2 :(得分:0)
或许尝试$(".wrapper .parent div:nth-child(2)")
?
或$(".wrapper .parent div:nth-child(" + i++ + ")")
用于下一个设置功能,其中i
是您想要获得的第一个。