本文介绍了JavaScript的拼接()会导致" arrayName.splice()不是一个函数"错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图从包含表单中输入字段的数组中删除某些值:
I am trying to remove certain values from an array containing input fields in a form:
allFields = theForm.getElementsByTagName("INPUT");
for(j=0; j < allFields.length; j++){
if(allFields[j].className == "btn" || allFields[j].className == "lnk"){
allFields.splice(j,1);
}
}
这会导致错误。萤火显示allFields.splice不是一个函数的错误,并且脚本无法正常工作。
It causes an error. Firebug shows "allFields.splice is not a function" error, and the script doesn't work.
这也正好与任何其他阵列方法我试过:(
This also happened with any other Array method I tried :(
在此先感谢
推荐答案
allFields不是一个数组,而是一个节点列表
。
allFields is not an array, but a NodeList
.
如果您要删除的元素,做一个逆向循环,并使用removeChild之:
If you want to remove elements, do a reverse loop and use 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]);
}
}
这篇关于JavaScript的拼接()会导致&QUOT; arrayName.splice()不是一个函数&QUOT;错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!