javascript 使用JS删除html元素

3wabscal  于 2023-01-11  发布在  Java
关注(0)|答案(3)|浏览(227)

我在做课堂练习。
我必须创建一个onclick函数来删除元素
在表单内部

<div id="content">
      <form id="form">
          <p>Hola</p>
          <p>que</p>
          <p>tal</p>     
      </form>
 </div>

我需要用js删除p元素。
我正在做这样的事情,但是我不知道怎么做

document.getElementById('form').appendChild("");

提前感谢你们:)

jutyujz0

jutyujz01#

说明:document.querySelector('.remove-p-tags-button')选择你的按钮,addEventListener在点击按钮时附加一个函数/事件监听器,在addEventListener的回调中,它选择表单中的所有p标签并删除它们。

document.querySelector('.remove-p-tags-button').addEventListener('click', (e) => {
  document.querySelectorAll('#form p').forEach(el => el.remove());
});
<div id="content">
    <form id="form">
       <p>Hola</p>
       <p>que</p>
       <p>tal</p>     
   </form>
   <button class="remove-p-tags-button">Remove P tags</button>
 </div>
qoefvg9y

qoefvg9y2#

一个子节点可以通过调用其父节点上的原生Node.removeChild(child)方法来移除。将此方法 Package 在while循环中可以移除指定父节点的每个子节点:

function removeAllChildren(parent) {
  while(parent.firstChild) {
    parent.removeChild(parent.firstChild)
  }
}

// usage:
const form = document.getElementById('form');
removeAllChildren(form);

MDN中所述:
如果removeChild()的返回值没有存储,也没有保留其他引用,那么它将在短时间后自动从内存中删除。
这就是为什么这种方法远上级简单的parent.innerHTML = ''方法,后者可能导致内存泄漏。

goqiplq2

goqiplq23#

您可以使用querySelectorAll来获取选定的元素,使用remove来从DOM中删除选定的元素。

function removePTags() {
  document.querySelectorAll("#form p").forEach(e => e.remove());
}
<div id="content">
  <form id="form">
    <p>Hola</p>
    <p>que</p>
    <p>tal</p>
  </form>

  <button onclick="removePTags()">Remove p</button>
</div>

相关问题