如何处理返回一堆DOM元素的jQuery函数的返回值。例如。我正在使用.nextAll()
函数,它返回一堆元素,是吗?我可以将返回值存储在JS数组中吗?迟早我想迭代这些元素。我知道有jQuery .each()
函数可以帮助我在这里。然而,对于培训和理解问题,我首先要一步一步地去做。
我很确定,这个基本问题已在某处得到解答,但我搜索了一个答案,并没有找到对我有用的东西。也许我找不到合适的词。所以请善待。
答案 0 :(得分:1)
您可以将其分配给变量:
var $els = $(selector).nextAll();
这样,$els
将成为元素的jQuery包装器(类数组对象)。
如果你想要一个元素数组,你可以使用
var arr = [].slice.call($els);
答案 1 :(得分:1)
jQuery
函数通常会返回一堆DOM元素,它伪装成一个数组。
如果您运行类似:
$('p').css('background-color', 'red');
jQuery
将构建一个包含所有p
元素的数组,然后将css()
函数应用于每个元素。
如果您想要一个DOM项目,请使用带有索引的get
:
$( "li" ).get( 0 )
因此,.nextAll()
通常也会返回许多元素,因此它的行为与jQuery
通常一样。
each()
是一个在数组上运行的方便花花公子的函数,所以它当然可以在jQuery
个对象上运行得很好:
$('li + li').nextAll().each(function(i){
//glorious code
});
你也可以这样做:
var nexts = $('li + li').nextAll();
$.each(nexts, function(i){
//Glorious code!!
});
希望让事情更清楚!
答案 2 :(得分:0)
正如.nextall()
的文档所述,它返回jQuery
jQuery对象包含文档对象模型(DOM)的集合 已从HTML字符串创建或从中选择的元素 文献。由于jQuery方法经常使用CSS选择器来匹配 来自文档的元素,jQuery对象中的元素集是 通常称为一组“匹配元素”或“选定元素”。
jQuery对象本身的行为很像数组;它有一个长度 属性和对象中的元素可以通过它们访问 数字索引[0]到[length-1]。请注意,jQuery对象不是 实际上是一个Javascript数组对象,所以它没有全部 真正的Array对象的方法,例如join()。