4
我試圖從包含在表單輸入字段的陣列除去某些值:JavaScript的剪接()導致「arrayName.splice()不是一個函數」錯誤
allFields = theForm.getElementsByTagName("INPUT");
for(j = 0; j < allFields.length; j++) {
if(allFields[j].className == "btn" || allFields[j].className == "lnk") {
allFields.splice(j,1);
}
}
它會導致錯誤。 Firebug顯示以下錯誤並且該腳本不起作用。
allFields.splice不是函數
這也發生與任何其他陣列方法我嘗試。我怎樣才能解決這個問題?
火狐說,這是一個的HTMLCollection,而是根據書「JavaScript權威指南」,David Flanagan着的,這是一個節點列表(第767頁)。 – Lekensteyn 2010-08-26 11:56:31
['getElementsByTagName'](http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#method-getElementsByTagName)返回['NodeList'](http:/ /www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-536297177)。 – Gumbo 2010-08-26 11:57:51
那麼,那是一個[Firefox中的錯誤](https://bugzilla.mozilla.org/show_bug.cgi?id=14869)。在Chrome中,document.getElementsByTagName('a')instanceof NodeList'的值爲「true」,但Firefox表示「false」。 *編輯:是的,這是一個錯誤* – Lekensteyn 2010-08-26 12:02:14