【问题标题】:Removing an element after a div with Jquery使用 Jquery 删除 div 后的元素
【发布时间】:2011-09-23 17:35:07
【问题描述】:

我想使用 jquery 删除直接跟在 div 后面的 p 标签。这是我的 HTML:

<div class="fbcommentbox"></div>
<p>Powered by <a href="http://pleer.co.uk/wordpress/plugins/facebook-comments/">Facebook Comments</a></p>

所以在这种情况下,&lt;p&gt; 标签内的所有内容都将设置为display:none

这似乎在 jquery 中执行起来非常简单,但我似乎无法将手指放在它上面。任何帮助都会很棒。谢谢!

【问题讨论】:

    标签: jquery jquery-selectors dom-traversal


    【解决方案1】:
    $('div.fbcommentbox + p').hide();
    

    选择你需要的。

    【讨论】:

    • @Tomalak,你能解释一下为什么next() 是不可取的吗? :-)
    • @Ben:这不是不可取的,但它比选择器慢(因为有了这个选择器,jQuery 可以使用现代浏览器原生支持的querySelectorAll)。在这种情况下,实际差异可能可以忽略不计,但记住这一点对于更复杂的场景很有用。
    • 为了好玩,我在 +.next() 之间进行了性能检查,看起来 next 更快,如果(对于某些阅读)你必须遍历来自循环内的 DOM。 jsperf.com/jquery-next-vs-plus
    • 我尝试了 onclick $(this + 'p').remove() 这会删除 myclass 旁边的所有

      元素。所以我使用了 $(this).next('p' ).remove() 仅删除 myclass 之后的那个。以防万一有人需要相同的功能...

    【解决方案2】:

    这应该可行:

    $('.fbcommentbox').next('p').remove();
    

    我们选择div,然后使用next获取下一个元素。

    【讨论】:

    • 也许.next('p') 会更干净。
    【解决方案3】:

    $('.fbcommentbox').next().hide();$('.fbcommentbox').css('display','none')

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      相关资源
      最近更新 更多