如何连接 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
有关如何将它们放入一个数组中的示例。
我认为最好的解决方案是这样的:
--更新您的特定代码--
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/