使用 javascript 从 DOM 树中删除 p 元素

发布于 2024-11-08 02:20:57 字数 603 浏览 7 评论 0原文

这应该是一个简单的问题,但我需要帮助来解决问题: 我需要从 DOM 树中删除带有“goup”类的元素 使用javascript(最终使用原型,但没有其他库)。 我不仅想隐藏该段落,还想将其从 DOM 树中完全删除。

我使用 getElementsByClassName 的解决方案不起作用。

function hidegoup() {
    var goup= document.getElementsByTagName("p")
        .getElementsByClassName("goup"); 
     goup.style.display = 'none';   
     goup.removeChild();
}

HTML:

<div id="poems">
    <div class="poem" id="d1">
        <p class="goup">
        <a href="#">To the top of the page</a>
        </p>
    </div>
</div>

This should be a simple one, and yet I need help to solve the problem:
I need to remove the element with the class "goup" on it from the DOM tree
with javascript (eventually with prototype, but no other library).
I don't only want to hide that paragraph, but remove it entirely from the DOM tree.

My solution to use getElementsByClassName does not work.

function hidegoup() {
    var goup= document.getElementsByTagName("p")
        .getElementsByClassName("goup"); 
     goup.style.display = 'none';   
     goup.removeChild();
}

THE HTML:

<div id="poems">
    <div class="poem" id="d1">
        <p class="goup">
        <a href="#">To the top of the page</a>
        </p>
    </div>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光清浅 2024-11-15 02:20:57

如果你想从 DOM 中删除一个 node,请使用:

node.parentNode.removeChild(node);

来实现你想要做的事情:

function hidegoup() {
    var p_list = document.getElementsByTagName("p");
    for(var i=p_list.length-1; i>=0; i--){
        var p = p_list[i];
        if(p.className === "goup"){
            p.parentNode.removeChild(p);
        }
    }
}

if you want to remove a node from the DOM, use:

node.parentNode.removeChild(node);

as to what you want to do:

function hidegoup() {
    var p_list = document.getElementsByTagName("p");
    for(var i=p_list.length-1; i>=0; i--){
        var p = p_list[i];
        if(p.className === "goup"){
            p.parentNode.removeChild(p);
        }
    }
}
千と千尋 2024-11-15 02:20:57
  1. getElementsByClassName 返回 NodeList,而不是 Node。您必须使用 for 循环对其进行迭代
  2. getElementsByClassName 不受支持,除非在最近的浏览器中,您可能应该使用 一个抽象差异的库
  3. removeChild 删除调用它的元素的指定子元素:parent.removeChild(child) ;,您不必直接在要删除的元素上调用它。
  1. getElementsByClassName returns a NodeList, not a Node. You have to iterate over it with a for loop
  2. getElementsByClassName is not supported except in recent browsers, you should probably use a library that abstracts the differences away
  3. removeChild removes the specified child of the element upon which it is called: parent.removeChild(child);, you don't call it on the element you want to remove directly.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文