Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript连接2个数组_Javascript_Prototype - Fatal编程技术网

Javascript连接2个数组

Javascript连接2个数组,javascript,prototype,Javascript,Prototype,如何连接包含DOM元素的2个数组 我正在尝试解析2个或更多包含Selectbox元素的数组。这是我的示例代码 selectboxes = []; for(var i = 0; i < forms.length; i++) { selectboxes = selectboxes.concat(forms[i].getElementsByTagName('select')) } 但它不起作用。有什么提示吗?JavaScript的getElementsByTagName函数不返回数组,而是返回

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

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

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

但它不起作用。有什么提示吗?

JavaScript的getElementsByTagName函数不返回数组,而是返回一个没有concat方法的节点列表

看看这个答案:

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

我认为最好的解决办法是:

-更新您的特定代码-

forms = document.forms;
selectboxes = [];
for(var i = 0; i < forms.length; i++)
{
   selectboxes = selectboxes.concat(Array.prototype.slice.call(forms[i].getElementsByTagName('select')));
}
​ 请记住,如果您只是想获取所有选择框,您可以跳过从表单中选择它们,而直接从document.getElementsByTagNameselect中选择它们


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

我为数组创建了一个新函数,它工作正常

Array.prototype.merge = function(arr) 
{
    var len = this.length;
    for(var idx = 0; idx < arr.length; idx++)
    {
        this[len+idx] = arr[idx]
    }
    return this;
}

可能是我更新了答案的副本,对你有用吗?
result = arr1.merg(arr2)