[英]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
有關如何將它們放在一個數組中的示例。
我認為最好的解決方案是:
- 更新您的特定代碼 -
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.