2014-05-02 34 views
3

返回的元素的兩個列表我要合併由document.querySelectorAll合併由querySelectorAll

返回的元素的兩個列表 下面

是什麼,我都試過,但它並不好:

var ca = document.querySelectorAll(".classA"); 
    ca = ca + document.querySelectorAll(".classB"); 

我需要合併元素的列表,因爲我需要在for循環只使用一個列表:

for(var i=0; i<ca.length; i++) console.log(ca[i].tagName); 

如何正確合併兩個這樣的名單?

回答

5

使用slice隱蔽的NodeList到一個數組和concat合併兩個數組:

var ca = Array.prototype.slice.call(document.querySelectorAll(".classA")).concat(Array.prototype.slice.call(document.querySelectorAll(".classB"))); 
14

你也可以這樣做

var ca = document.querySelectorAll(".classA, .classB"); 
+1

「但這需要FF 3.1 +,Safari瀏覽器3.1以上版本,或IE8 +「無論您使用逗號加入選擇器還是使用不同的調用querySelectorAll()',瀏覽器支持都沒有區別。 – BoltClock

+0

沒錯。我想我可以不說了。 – Biketire

+0

Polyfill也許? – thednp