本文介绍了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;错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 04:30