2012-02-04 67 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