簡體   English   中英

Javascript加入2個陣列

[英]Javascript Joining 2 Arrays

如何加入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”)中選擇它們即可

當然,那么你可能會得到不適用於表格的選擇框(偶爾選擇框用於導航或其他非標准原因)。

我已經為數組創建了一個新函數,它工作正常。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM