Javascript 连接 2 个数组

标签 javascript prototype

如何连接 2 个包含 DOM 元素的数组。

我正在尝试连接 2 个或更多包含 Selectbox 元素的数组。这是我的示例代码。

selectboxes = [];
for(var i = 0; i < forms.length; i++)
{
selectboxes = selectboxes.concat(forms[i].getElementsByTagName('select'))
}

但它不起作用。有什么建议吗?

最佳答案

JavaScript 的 getElementsByTagName 函数不返回数组,它返回一个没有 concat 方法的 NodeList。

https://developer.mozilla.org/en/DOM/element.getElementsByTagName

查看这个答案:JavaScript NodeList

有关如何将它们放入一个数组中的示例。

我认为最好的解决方案是这样的:

http://jsfiddle.net/4CKRN/

--更新您的特定代码--

forms = document.forms;
selectboxes = [];
for(var i = 0; i < forms.length; i++)
{
   selectboxes = selectboxes.concat(Array.prototype.slice.call(forms[i].getElementsByTagName('select')));
}

​ 请记住,如果您只想获取所有选择框,您可以跳过从表单中选择它们,而只需从 document.getElementsByTagName("select") 中选择它们

当然,您可能会得到不适合表单的选择框(有时选择框用于导航或其他非标准原因)。

关于Javascript 连接 2 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9513062/

相关文章:

javascript - "The"原型(prototype)是什么?

javascript - require() 将构造函数转换为原型(prototype)?

C# BHO 从 Javascript 返回值

javascript - 从外部元素控制 Flexslider。

javascript - 使用绑定(bind)原型(prototype)更改 'this' 的范围

javascript - 我怎样才能使超时功能无限循环

javascript - 如果他没有名字,是什么让 object.prototype 成为构造函数?

javascript - 揭示模块/原型(prototype)模式

javascript - 如何创建带有列表提交的表单

javascript - 是否可以将方法附加到没有原型(prototype)属性的构造函数/函数?