Javascript 某些id的RemoveChild错误
几个小时后,我想知道为什么我的孩子有时不工作。阅读论坛后,我看到了一些关于我的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; }Javascript 某些id的RemoveChild错误,javascript,Javascript,几个小时后,我想知道为什么我的孩子有时不工作。阅读论坛后,我看到了一些关于我的removechild数组每次减少的数量的问题。。。但我不知道如何解决这个问题。。。你知道吗 编辑:我刚刚更新了代码片段 对于复制问题,我邀请您添加4个新div并删除第三个div,然后尝试删除其他div。。。其中一个会引起一些麻烦 函数新文本{ var text=提示性交易; 如果文本!={ 增编案文; } } 函数deletedivid{ var parent=document.getElementById'ft_
您正在将该元素作为父节点的子节点的索引进行访问,但如果删除一条记录,然后再次添加,则不会跳过“添加的记录”计数器值 传递元素本身,而不是传递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