如何使用jQuery删除最后一个DIV?

7

i have the following format :

<div id="container1">
<div id="post"> blah blah blah </div>
<div id="post"> blah blah blah </div>
<div id="post"> blah blah blah </div>
</div>

<div id="container2">
<div id="post"> blah blah blah </div>
<div id="post"> blah blah blah </div>
<div id="post"> blah blah blah </div>
</div>

我需要一个jQuery代码来移除“container1”中最后一个带有淡化效果的“post” DIV。
重要提示:由于“container1”没有特定的“post” DIV数量,因此该代码应选择“container1” div中的最后一个“POST” div。
谢谢

2
首先,您不应使用多个ID,而应使用类来实现。一个ID必须是唯一的。 - fmsf
6个回答

21

$('#container1 #post:last').fadeOut()会删除"container1"中id为"post"的最后一个div。

另外,像Gumbo所说,id应该是唯一的。然而,这个jQuery代码仍然可以工作。


8

文档中ID必须是唯一的。 因此选择器#post可能不起作用。但是以下内容应该可以正常工作:

$("#container1").children("div[id=post]:last").fadeOut();

6

不要使用.fadeout,而应该使用.remove将元素从包含的div中删除。Fadeout执行淡出过渡,但元素仍然存在于DOM中,并且在操作div的大小时会被计算。


5
$("#container1").children("div[id=post]:last").remove();

将删除最后一个div,以此类推,直到所有的div都被删除。


4
为了精确调整淡出时间,您可以使用hide代替:
$(document).ready(function() {
        $("#container2 div:last").hide(2000);
    });

3

这样可以淡出它,并将其从DOM中移除。

$('#container1 #post:last').fadeOut('slow',function(){
    $(this).remove();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接