2010-05-12 14 views
5

Necesito eliminar las etiquetas después de #first y solo en #container. ¿Cómo puedo hacerlo con jQuery?¿Cómo eliminar todas las etiquetas después de cierta etiqueta?

<div id="container"> 
    <div id="first"></div> 
    <div id="remove_me_1"></div> 
    <div id="remove_me_2"></div> 
    <div id="remove_me_3"></div> 
    <a href="" id="remove_me_too">Remove me too</a> 
</div> 

Gracias

Respuesta

11

Puede utilizar nextAll método: http://api.jquery.com/nextAll/

$("#first").nextAll().remove(); 
+0

+1 agradable y simple, eliminé mi respuesta levemente (pero solo ligeramente) más complicada. –

+0

El selector debe ser '#container # first' como se requiere en la pregunta. – DisgruntledGoat

+1

@DisgruntledGoat, debe haber un solo elemento '# first' en la página. –

1
$.("#container #first ~ *").remove(); 
+1

-1 * el selector universal, se debe evitar dondequiera que sea posible. – jAndy

+0

@jAndy, ¿hay alguna evidencia de que su declaración se aplique en el contexto de jQuery? Sé que los selectores CSS se combinan de derecha a izquierda, pero no estoy tan seguro de que jQuery haga lo mismo. Sin embargo, puede ser el caso con 'querySelectorAll'. –

+0

sizzle coincide de derecha a izquierda, sí. – jAndy

1
$("#container :gt(0)").remove(); 
Cuestiones relacionadas