我试图从包含表单输入字段的数组中删除某些值:
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不是函数
我尝试过的任何其他Array方法也会发生这种情况。我该如何解决这个问题?
答案 0 :(得分:6)
allFields不是数组,而是NodeList
。
如果要删除元素,请执行反向循环并使用removeChild:
var allFields = theForm.getElementsByTagName("input");
for(var j=allFields.length-1; j>=0; j--){
if(allFields[j].className == "btn" || allFields[j].className == "lnk"){
allFields[j].parentNode.removeChild(allFields[j]);
}
}