创建jQuery元素列表

5

我有一些jQuery元素:

var elem1 = $("#elem1");
var elem2 = $("#elem2");
var elem3 = $("#elem3");

我需要创建一个 jQuery 数组(列表),其中包含这些元素,就像拥有:
var allElements = $("#container").children("div");

我该怎么做?

5个回答

9
使用.add()方法向匹配元素集中添加元素。
var allElements = elem1.add(elem2).add(elem3);

它比创建数组更快。请参见我的基准测试:http://jsperf.com/create-list-of-jquery-dom-objects - KrisWebDev

3
这对我有用:

这对我有用:

var allElements = [];
$("#container > div").each(function(){
    allElements.push($(this));
});

首先创建数组,然后将容器中的每个DIV子元素推入该数组。

both $("#container > div") and $("#container").children("div") work

0
$(function(){

 var arr = new Array($('#el1'),$('#el2'), $('#el3'));
 alert( arr.length );

});

请查看jsfiddle

那是因为您需要指定数组中将接收类的元素,或者迭代更改所有元素的类。 - user800014

0

你可以将它们全部放入Array()实例中。jQuery是JavaScript的全新面貌,具有许多增强Web设计的功能。

如果你打算对不同的#元素应用不同的效果,我建议最好不要这样做,因为你可能需要处理/访问每个元素来完成这项工作,从而导致性能问题。


它不起作用,因为我尝试了var array[] = [elem1, elem2, elem3],但它不是一个jQuery数组(例如它没有addClass())。 - Catalin
我需要类似这样的代码:jqueryList = $.list([ elem1, elem2, elem3 ]); jqueryList.addClass("selected") - Catalin
@RaraituL,你需要使用.add方法。请看我的回答。 - dfsq

0

这样写不行吗?

var array = [ $("elem1"), $("elem2"), $("elem2") ];


无法创建 jQuery 数组 :( - Catalin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接