2012-04-13 2 views
0
var b = document.getElementsByName("button"); 
var l = document.getElementsByName("link"); 

Welches ist der beste Weg, um den Inhalt dieser beiden Arrays zu einem zusammenzufassen? Ich möchte nicht für Schleife verwendenWelches ist der beste Weg, um das Array des zwei Dokumentelements in eins zu fügen?

+2

Das gleiche - http://stackoverflow.com/questions/1584370/how-to-merge-two-arrays-i N-Javascript? –

+0

möglich Duplikat von [JavaScript NodeList] (http://stackoverflow.com/questions/914783/javascript-nodelist) – bfavaretto

+0

Nachschlagen concat. – dkretz

Antwort

3

können Sie Array.prototype.slice.call() verwenden, um die nodeLists in echte Arrays zu drehen und dann Array-Operationen auf sie verwenden, um sie

var b = document.getElementsByName("button"); 
var l = document.getElementsByName("link"); 
// make both nodeLists into real arrays 
var copyB = Array.prototype.slice.call(b, 0); 
var copyL = Array.prototype.slice.call(l, 0); 
var combined = copyB.concat(copyL); 

Arbeits Demo zu kombinieren: http://jsfiddle.net/jfriend00/vZ5tb/

Oder, eine etwas kürzere Version:

var copyB = Array.prototype.slice.call(document.getElementsByName("button"), 0); 
var copyL = Array.prototype.slice.call(document.getElementsByName("link"), 0); 
var combined = copyB.concat(copyL); 
+0

Warum antworte ich, anstatt die Frage als Betrogene zu schließen? Frage und Antwort sind fast identisch mit denen, mit denen ich verlinkt bin. – bfavaretto