2014-08-27 120 views
0

有没有一种方法可以根据类名内的文本删除5个div。 这里是我的divjQuery根据div内的文字删除5个特定的div

<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 

<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>Adam</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 
<div class='instagram'> 
    <div class='name'>John</div> 
</div> 

所以你可以在.instagram DIV中看到,有一个class='name'。我想删除John和Adam的最后5个div。

我该怎么做?

我已经知道如何删除最后5个div。

jQuery('body').find(".instagram:nth-last-child(-n+5)").remove(); 

但删除每个名称的最后5个div对我来说很困难,您的帮助将不胜感激。

请注意,这些名称是动态的(约翰和史蒂夫)。这些名字来自ajax结果。 :)

谢谢! :)

回答

4

您可以使用:contains().filter()slice()

jQuery('body').find(".name").filter(':contains(John), :contains(Adam)').parent().slice(-5).remove() 

演示:Fiddle

+0

如果这些名称是动态的,这可能吗?约翰和亚当只是例子的名字。 – PinoyStackOverflower 2014-08-27 08:23:01

+2

@PinoyStackOverflower concantate字符串并插入名称变量'':contains('+ data.name +')' – Anton 2014-08-27 08:25:07

+0

它不是简单地删除5个最后一项?在你的测试中看起来像这样 – spliter 2014-08-27 08:43:55

0

@PinoyStackOverflower如果你真正需要的是,除去5个最后阿达姆斯和5个最后约翰,我会去简单

$('.name:contains("Adam")').slice(-5).parent().remove(), 
$('.name:contains("John")').slice(-5).parent().remove(); 

JSFiddle example

+0

我想这只会删除.name类。这不会删除.instagram div。我想删除.instagram div以及名称所在的位置。 :) – PinoyStackOverflower 2014-08-27 09:06:33

+0

不,@PinoyStackOverflower,它也会删除''.instagram''。检查结果窗口的来源,请;) – spliter 2014-08-27 09:12:23

+0

感谢您的回答,实际上这是我正在工作的网站http://www.mtgmusic.no/它仍然没有在我的最终工作,因为有一个div在这个网站名称下面,名字是rayleeofficial,erikogkriss等等。所以当我使用你的代码时,它不会删除整个div。请有任何想法吗? :) – PinoyStackOverflower 2014-08-27 09:59:45