2010-01-29 12 views
6

Tengo el siguiente formato:¿Cómo eliminar el último DIV usando 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> 

Quiero un código de jQuery para quitar el último "post" en el DIV "container1" con un efecto de desvanecimiento.

Importante: el "contenedor1" no tiene un número de DIV "post" especificado. por lo que el código debería simplemente seleccionar el último div "POST" en el div "contenedor1".

Gracias

+2

primero de todo lo que no debe utilizar múltiples de identificación, clases de uso para tal fin. una ID debe ser única – fmsf

Respuesta

18

$('#container1 #post:last').fadeOut() eliminaría el último div con el ID de "post" en "container1".

Además, como dijo Gumbo, las identificaciones deben ser únicas. Sin embargo, este código jQuery seguirá funcionando.

7

IDs must be unique in a document. Así que el selector #post probablemente no funcionará. Pero esto debería funcionar de todos modos:

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

Para afinar la sincronización fadeout puede utilizar en lugar de ocultar:

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

o fadeOut (2000) – BBagi

6

en lugar de .fadeout, se debe utilizar .Remove para eliminar el elemento de la div que contiene. Fadeout realiza la transición de desvanecimiento, sin embargo, el elemento permanece en el DOM y se contará si se manipula el tamaño del div.

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

eliminará last div y así sucesivamente hasta que se eliminen todos los div.

1

Esto se desvanece hacia fuera y también lo elimina del DOM

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