Javascript 如何处理返回一组元素的jQuery函数的返回值
如何处理将返回一组DOM元素的jQuery函数的返回值。例如,我正在使用Javascript 如何处理返回一组元素的jQuery函数的返回值,javascript,jquery,Javascript,Jquery,如何处理将返回一组DOM元素的jQuery函数的返回值。例如,我正在使用.nextAll()函数,它返回一组元素,是吗?我可以将返回值存储在JS数组中吗?我迟早要遍历这些元素。我知道jQuery.each()函数可以帮助我解决这个问题。然而,对于培训和理解问题,我首先要一步一步地做 我很确定,这个基本问题在某个地方得到了回答,但我一直在寻找答案,却没有发现任何对我有用的东西。也许我没有找到合适的词。因此,请友好。您可以将其分配给一个变量: var $els = $(selector).next
.nextAll()
函数,它返回一组元素,是吗?我可以将返回值存储在JS数组中吗?我迟早要遍历这些元素。我知道jQuery.each()
函数可以帮助我解决这个问题。然而,对于培训和理解问题,我首先要一步一步地做
我很确定,这个基本问题在某个地方得到了回答,但我一直在寻找答案,却没有发现任何对我有用的东西。也许我没有找到合适的词。因此,请友好。您可以将其分配给一个变量:
var $els = $(selector).nextAll();
这样,$els
将成为元素的jQuery包装器(类似数组的对象)
若您想要有一个元素数组,可以使用
var arr = [].slice.call($els);
正如
.nextall()
的文档所述,它返回
jQuery对象包含文档对象模型(DOM)的集合
从HTML字符串创建或从
文件。因为jQuery方法经常使用CSS选择器来匹配
元素,jQuery对象中的元素集为
通常称为一组“匹配元素”或“选定元素”
jQuery对象本身的行为非常类似于数组;它有一个长度
属性和对象中的元素可以通过其
数值索引[0]到[length-1]。请注意,jQuery对象不是
实际上是一个Javascript数组对象,因此它没有所有
真数组对象的方法,如join()
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!!
});
希望这能让事情更清楚 我可以把它分配给一个JS变量吗?那是一个JS变量。。。你是什么意思?我一直认为,使用$-符号,我声明了一个jQuery对象。也许我必须再次修改基础知识。@user3005306
$
是一个创建jQuery对象的函数。但是您可以在名称的开头使用$
创建变量。我将其用于包含jQuery对象的变量,以避免与HTMLCollection
对象混淆。任何jQuery集合都可以像var collection=$(元素).nextAll()一样简单地返回到变量。每个都是jQuery原型上的一个方法-$.fn
,这意味着您可以执行nexts.each(函数(i,el){…}