Javascript 如何删除特定的子节点

Javascript 如何删除特定的子节点,javascript,html,dom,event-handling,Javascript,Html,Dom,Event Handling,我有以下代码 函数delete(){ var e=document.getElementById('parent'); e、 移除儿童(如儿童[0]); } 删除 删除 试试这个: function delete(){ $(this).parent().remove() } 您不能将相同的id用于不同的div请看这两行: var e = document.getElementById('parent'); e.removeChild(e.children[0]); 在

我有以下代码


函数delete(){
var e=document.getElementById('parent');
e、 移除儿童(如儿童[0]);
}

删除
删除
试试这个:

function delete(){
    $(this).parent().remove()
}

您不能将相同的
id
用于不同的
div

请看这两行:

var e = document.getElementById('parent');    
e.removeChild(e.children[0]);
在这里,您通过其id获取一个元素,id为“父”。 这将始终为您提供div

然后删除e的第一个子元素

您需要一种不同的方法来获取要删除的元素

第一步是看看你的目标 事件处理程序:

   function delete(ev){
     var target = ev.target;
     console.log("the element that was clicked is ", target);
     // continue from here
   }

这是一个完全有效的例子

功能删除节点(项){
item.parentNode.remove()
}

删除
删除

首先,
删除
是一个函数名,您不能将其用作函数名

其次,必须传递被单击元素的引用。这可以通过将
This
参数传递给onclick处理程序来实现:

<button onclick="deleteParent(this)"> delete</button>
删除
这将导致以下结果:

 <div id="parent">
     <div>
      <input type="text" placeholder="name"> 
      <button onclick="deleteParent(this)"> delete</button>
     </div>

     <div>
      <input type="text" placeholder="age"> 
      <button onclick="deleteParent(this)"> delete</button>
     </div>
 </div>

 <script>
   function deleteParent(btn){
     btn.parentNode.remove();
   }
 </script>


删除
删除
函数deleteParent(btn){
btn.parentNode.remove();
}

您也不应该在多个元素上使用相同的
id

您将问题标记为“jquery”,但您没有使用jquery。您想使用jquery吗?或者您更愿意使用普通的javascript?您可以通过javascript
this.parentElement.remove()
尝试此操作。此操作将不起作用,
delete
是保留关键字,即使函数名已更改,
将引用全局对象,而不是按钮。