2012-04-18 100 views
5

¿Cómo elimino todos los divs de clase excepto los 2 últimos que utilizan jquery?¿Cómo elimino todos los divs de clase excepto los 2 últimos usando jquery?

Tengo un conjunto de comentarios que se muestran en una clase .comment_container. Cuando se hace clic en todos los comentarios, se muestra una lista de todos los comentarios de un micropost particular antes de los 2 últimos más recientes que se muestran de forma predeterminada.

Sin embargo, si un usuario escribe un comentario antes de hacer clic para ver todos los comentarios, este comentario se agrega a la lista y ahora se muestran 3 comentarios recientes. Debido a la forma en que configuré un código de fondo, hace que el comentario más reciente se muestre dos veces cuando se hace clic en el vínculo Mostrar todo.

No es necesario entrar en los detalles, pero lo que he decidido hacer es contar el total de divs y del total eliminar todos los divs pero 2 (los últimos 2 en la lista que son los más recientes).

¿Cómo puedo lograr esto usando jquery?

Saludos cordiales

Respuesta

7

Uso slice() (y el crédito a @Felix Kling para la actualización):

$(".comment_container").slice(0, -2).remove(); 

Sin embargo, dada su descripción de su problema esto no suena como el mejor curso de acción . Puede valer la pena comenzar una nueva pregunta sobre el problema que tiene con los comentarios con algunos detalles sobre su código.

Más información sobre slice().

+0

O simplemente '.slice (0, -2)' (después de comprobar que hay más elementos 'n' seleccionados). –

+1

@FelixKling Gracias - ¡Nunca me di cuenta de que podrías hacer eso! ¡Tal vez debería leer los documentos un poco más! –

+0

La solución perfecta para mi situación. Gracias – LondonGuy

0

¿Las dos últimas divisiones que no desea incluir tienen identificaciones?

creo que podría utilizar jQuery .not() para eliminar los últimos dos divs después de que haya elegido que eres selector de algo como esto

$('.comment_container').not('#lastDiv, #lastButone')

A continuación, puede ver todos los comentarios, pero no los 2.

más información en .not()

Cuestiones relacionadas