如何处理返回一堆元素的jQuery函数的返回值

时间:2014-03-21 12:44:08

标签: javascript jquery

如何处理返回一堆DOM元素的jQuery函数的返回值。例如。我正在使用.nextAll()函数,它返回一堆元素,是吗?我可以将返回值存储在JS数组中吗?迟早我想迭代这些元素。我知道有jQuery .each()函数可以帮助我在这里。然而,对于培训和理解问题,我首先要一步一步地去做。

我很确定,这个基本问题已在某处得到解答,但我搜索了一个答案,并没有找到对我有用的东西。也许我找不到合适的词。所以请善待。

3 个答案:

答案 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()。