2012-02-04 65 views
3

我有一些jQuery的元素:创建jQuery的元素列表

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

我需要创建这些元素的jQuery的数组(表),就像有

var allElements = $("#container").children("div"); 

我怎样才能做到这一点?

回答

8

使用.add()将元素添加到匹配元素集的方法。

var allElements = elem1.add(elem2).add(elem3); 
+0

它比创建数组要快。在http://jsperf.com/create-list-of-jquery-dom-objects – KrisWebDev 2013-06-02 15:56:10

0

您可以将它们全部放入Array()的实例中。 jquery是javascript的全新面貌。为更好的网页设计增加了许多功能。 如果您打算对不同的#元素应用不同的效果,我最好不要说,因为您可能需要处理/访问该作业的每个元素。因此性能问题。

+0

这是不行的,因为我想变种数组[] = [elem1,elem2时,elem3]但不是一个jQuery阵列(它没有addClass()为例) – Catalin 2012-02-04 12:27:43

+0

我需要这样的东西:jqueryList = $ .list([elem1,elem2,elem3]); jqueryList.addClass(“selected”) – Catalin 2012-02-04 12:31:30

+0

@RaraituL您需要'.add'方法。看到我的答案。 – dfsq 2012-02-04 12:32:59

0
$(function(){ 

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

}); 

参见jsfiddle

+0

查看我的基准检查:[jsfiddle](http://jsfiddle.net/fYhU3/1/) – Catalin 2012-02-04 12:38:52

+0

这是因为你需要指定将接收该类的数组中的元素,或者迭代将该类更改为所有元素。 – 2012-02-04 12:41:27

0

岂不

变种阵列= [$( “elem1”),$( “elem2时”),$( “elem2时”)];

工作吗?

+0

不会做一个jQuery的阵列:( – Catalin 2012-02-04 12:34:27

+0

嗯,我的Firefox浏览器,阵列[0] .html(“你好”)工作正常... – 2012-02-04 13:15:57

1

这为我工作:

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

1日创建数组,然后把你的容器的每个格子这阵英寸

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