2010-01-29 11 views
6

ich habe folgendes Format:Wie entferne ich den letzten DIV mit jQuery?

<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> 

Ich möchte ein jQuery-Code, um die letzten "post" DIV in der "container1" mit einem Fading-Effekt zu entfernen.

Wichtig: Der "container1" hat keine angegebene "post" DIVs Nummer. Daher sollte der Code nur das letzte "POST" -div im Divider "container1" auswählen.

Dank

+2

1. alles, was Sie sollen nicht mehr IDs verwenden, verwenden Klassen für diesen Zweck. eine ID muss eindeutig sein – fmsf

Antwort

18

$('#container1 #post:last').fadeOut() würde die letzte Div mit der ID "Post" in "container1" entfernen.

Auch, wie Gumbo sagte, IDs sollten eindeutig sein. Dieser jQuery-Code funktioniert jedoch weiterhin.

7

IDs must be unique in a document. der Wähler #post wird also wahrscheinlich nicht funktionieren. Dies soll aber auf jeden Fall arbeiten:

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

Zur Feinabstimmung der fadeout Timing können Sie verwenden verstecken statt:

$(document).ready(function() { 
     $("#container2 div:last").hide(2000); 
    }); 
+1

oder fadeOut (2000) – BBagi

6

statt .fadeout, sollten Sie .remove verwenden das Element aus dem enthaltenden div zu entfernen. Fadeout führt den Überblendungsübergang aus, das Element bleibt jedoch weiterhin im DOM und wird gezählt, wenn die Größe des div manipuliert wird.

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

wird letzte div und so weiter entfernen, bis alle div entfernt werden.

1

Dies blendet es aus und auch entfernt es aus dem DOM

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