Javascript 某些id的RemoveChild错误

Javascript 某些id的RemoveChild错误,javascript,Javascript,几个小时后,我想知道为什么我的孩子有时不工作。阅读论坛后,我看到了一些关于我的removechild数组每次减少的数量的问题。。。但我不知道如何解决这个问题。。。你知道吗 编辑:我刚刚更新了代码片段 对于复制问题,我邀请您添加4个新div并删除第三个div,然后尝试删除其他div。。。其中一个会引起一些麻烦 函数新文本{ var text=提示性交易; 如果文本!={ 增编案文; } } 函数deletedivid{ var parent=document.getElementById'ft_

几个小时后,我想知道为什么我的孩子有时不工作。阅读论坛后,我看到了一些关于我的removechild数组每次减少的数量的问题。。。但我不知道如何解决这个问题。。。你知道吗

编辑:我刚刚更新了代码片段 对于复制问题,我邀请您添加4个新div并删除第三个div,然后尝试删除其他div。。。其中一个会引起一些麻烦

函数新文本{ var text=提示性交易; 如果文本!={ 增编案文; } } 函数deletedivid{ var parent=document.getElementById'ft_list'; parent.removeChildparent.childNodes[id]; } 函数加法文本{ var id=document.getElementById'ft_list'.childrence.length var ref=document.getElementById; 如果id== id=1; 其他的 id++; var newDiv=document.createElement'div'; newDiv.setAttribute'class',行; newDiv.setAttribute'id',id; setAttribute'onclick','deletedivthis.id;'; var newContent=document.createTextNodetext; newDiv.appendChildnewContent; document.getElementByIdft_list.insertBeforenewDiv,参考; } FTU列表{ 边框:1px浅灰色虚线; 最小高度:30vh; } .线路{ 背景:浅灰色; 填充物:5px; 保证金:5px } 输入{ 背景:浅灰色; 宽度:150px; 高度:50px; }
您正在将该元素作为父节点的子节点的索引进行访问,但如果删除一条记录,然后再次添加,则不会跳过“添加的记录”计数器值

传递元素本身,而不是传递id

newDiv.setAttribute('onclick', 'deletediv(this);');
并将方法更改为

function deletediv(el) {
  el.parentNode.removeChild(el);
}
演示

函数新文本{ var text=提示性交易; 如果文本!={ 增编案文; } } 函数deletedivel{ el.parentNode.removeChildel; } 函数加法文本{ var id=document.getElementById'ft_list'.childrence.length var ref=document.getElementById; 如果id== id=1; 其他的 id++; var newDiv=document.createElement'div'; newDiv.setAttribute'class',行; newDiv.setAttribute'id',id; setAttribute'onclick','deletedivthis;'; var newContent=document.createTextNodetext; newDiv.appendChildnewContent; document.getElementByIdft_list.insertBeforenewDiv,参考; } FTU列表{ 边框:1px浅灰色虚线; 最小高度:30vh; } .线路{ 背景:浅灰色; 填充物:5px; 保证金:5px } 输入{ 背景:浅灰色; 宽度:150px; 高度:50px; } 更新你的功能

       function deletediv(t) {
            t.parentElement.removeChild(t);
        }

        function addElement(text) {
            var id = document.getElementById('ft_list').children.length
            var ref = document.getElementById(id);
            if (id == "")
                id = 1;
            else
                id++;
            var newDiv = document.createElement('div');
            newDiv.setAttribute('class', "line");
            newDiv.setAttribute('id', id);
            newDiv.addEventListener('click', function() {
                deletediv(newDiv)
            });
            var newContent = document.createTextNode(text);
            newDiv.appendChild(newContent);
            document.getElementById("ft_list").insertBefore(newDiv, ref);
        }

请分享一个演示您的问题的工作片段。您的id值有效吗?您的代码可以正常工作。请告诉我们如何使用问题中的代码段复制问题。@gurvinder372如果您尝试添加示例4的新div,请删除第三个,然后删除另一个,有时我会收到其中一个的错误消息。您使用提交按钮,但是你不能取消按钮操作。我很好奇,哪一个会像你那样直接删除元素更快,还是通过id查找然后删除更快?@Durga我想通过id查找将是一个额外的步骤,而这将直接给对象删除。是的,我认为这种方法更好谢谢Durga和gurvinder