0
var b = document.getElementsByName("button");
var l = document.getElementsByName("link");

これら2つのアレイのコンテンツを1つに追加するための最良の方法はどれですか?forループを使いたくない

4

1 に答える 1

3

を使用Array.prototype.slice.call()してnodeListsを実数配列に変換し、それらに対して配列操作を使用してそれらを組み合わせることができます

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);

実際のデモ: http://jsfiddle.net/jfriend00/vZ5tb/

または、少し簡潔なバージョン:

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);
于 2012-04-13T06:30:51.613 に答える