Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除导致错误的child_Javascript_Html - Fatal编程技术网

Javascript 删除导致错误的child

Javascript 删除导致错误的child,javascript,html,Javascript,Html,我有一个表单如下所示: <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_cart"> <input type="hidden" name="upload" value="1"> <in

我有一个表单如下所示:

    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
    </form>
    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
        <input type="hidden" data-formid="1" name="item_name_1" value="item1">
        <input type="hidden" data-formid="1" name="amount_1" value="5">
        <input type="hidden" data-formid="1" name="quantity_1" value="1">
    </form>
    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="rspslegendx-facilitator@gmail.com">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
        <input type="hidden" data-formid="1" name="amount_1" value="5">
    </form>
表格最后看起来是这样的:

    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
    </form>
    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
        <input type="hidden" data-formid="1" name="item_name_1" value="item1">
        <input type="hidden" data-formid="1" name="amount_1" value="5">
        <input type="hidden" data-formid="1" name="quantity_1" value="1">
    </form>
    <form id="donate_form" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="rspslegendx-facilitator@gmail.com">
        <input type="hidden" name="currency_code" value="EUR">
        <input type="hidden" name="return" value="www.google.com">
        <input type="hidden" name="custom" id="donate_custom_input" value="">
        <input type="hidden" data-formid="1" name="amount_1" value="5">
    </form>

因此,当它试图删除第二个循环后的第二个元素时,似乎有什么东西导致了错误


一段时间以来,我一直在试图找出是什么原因导致了这种情况,但我似乎无法找到答案。也许其他人能发现我的错误?

假设你有这个数组
[a,b,c,d,e]
。您想删除
b,c,d
,因此可以从1到3(
b,c,d
的数组索引)进行循环,然后删除索引1,然后删除索引2,然后删除索引3。但是当您删除索引1时,您的数组将变成
[a,c,d,e]
,因此删除索引2将留下
[a,c,e]
,然后删除索引3将产生
错误-没有索引3

要解决此问题,请在删除元素时从使用的迭代器中减去1,或者向后迭代数组,或者继续删除相同的数组索引j次

无论如何,这里有一个更简洁的方法来删除表单字段(我制作了3个要删除的文本字段,所以很明显它们已经消失了)

函数removeFromForm(id){
var f=document.querySelector(“捐赠表单”);
var inps=f.querySelectorAll(“输入[data formid='“+id+'”]);
对于(变量i=inps.length-1;i>=0;i--){
f、 removeChild(inps[i]);
}
}
从表格(1)中删除

Change
form.removeChild(formChilds[j])
form.removeChild(formChilds[i])。问题是,当您删除表单元素时,您的数组长度正在更改并导致异常

函数removeFromForm(id)
{
var form=document.getElementsByTagName('form')[0];
var formChilds=form.childs;//获取子元素数组
//formChildrenOffset=添加3个新元素之前表单中的子元素数量,因此6
for(变量i=6;i