使用 Jquery 删除 div 后的元素

Posted

技术标签:

【中文标题】使用 Jquery 删除 div 后的元素【英文标题】:Removing an element after a div with Jquery 【发布时间】: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 中执行起来非常简单,但我似乎无法将手指放在它上面。任何帮助都会很棒。谢谢!

【问题讨论】:

【参考方案1】:
$('div.fbcommentbox + p').hide();
hide() 设置display: noneremove() 从 DOM 中移除元素。

选择你需要的。

【讨论】:

@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')

【讨论】:

以上是关于使用 Jquery 删除 div 后的元素的主要内容,如果未能解决你的问题,请参考以下文章

使用jquery ui拖放后的动态div宽度

jquery怎么清空div的子元素?

jquery 删除元素: empty and remove

如何在移动元素后使用jquery删除元素

使用 .droppable 拖放到 div 中时,jQuery UI 删除元素

学习jQuery后的部分总结