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

将这两个数组的内容合二为一的最佳方法是什么?我不想使用 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 回答