2012-03-01 2124 views
8

tengo este código HTMLretirar a los niños de DIV después de cierto número

<div class="control"> 
    <label class="">Label Here</label> 
    <input type="text"> 
    <div class="ui-resizable"></div> 
    <div class="ui-resizable-handle"></div> 
    <div class="ui-resizable-handle ui-resizable-se"></div> 
    <div style="display: inline;" class="delete"><span class="ui-icon ui-icon-closethick">close</span> </div> 
    <div style="display: inline;" class="properties txtbox"><span class="ui-icon ui-icon-wrench">Properties</span></div> 
</div> 

¿Cómo puedo eliminar la segunda Divs tercero y cuarto de esta HTML usando jQuery ....

+0

Si no sé cuántos divs se producirá después de que el campo de entrada ¿hay alguna manera de cortar o una rebanada todos los divs o cualquier elemento que se producen después de que el segundo hijo de la DIV de control. .. – HardCode

+0

Sí, usa el selector ': gt'. Ver la actualización en mi respuesta para la explicación. –

Respuesta

6

Probar:

 

$('.control').find("div").slice(1, 4).remove(); 
 
4
$('.controll>div:gt(1)').remove(); 

:gt selector se le permite seleccionar cuál tiene un índice mayor que 1 theese son 3. elementos y más

aquí está el ejemplo: http://jsfiddle.net/Am7Vw/1/

+0

esto funcionó perfectamente otro código de muestra $ ('. Pos_abs .mjx-box> span: gt (150)'). Remove(); –

-1

Usted puede hacer esto

$('.control div:nth-child(2)').remove(); 
$('.control div:nth-child(3)').remove(); 
$('.control div:nth-child(4)').remove(); 

O puede hacer esto también

$('.control div:nth-child(1)').siblings().remove(); 
+1

Su primera solución no funcionará. Después de la primera eliminación, hay un elemento menos, por lo que todos los índices cambian. –

12

Usted está buscando :nth-child: http://api.jquery.com/nth-child-selector/

Funciona así:

$('.control div:nth-child(2), .control div:nth-child(3), .control div:nth-child(4)').remove(); 

Tenga en cuenta que :nth-child utiliza basada en una indexación, por lo que el primer elemento tiene índice 1.

ACTUALIZACIÓN: En respuesta a esta pregunta del PO publicado en un comentario

Si no sé cuántos divs se producirá después el campo de entrada está allí ninguna manera de cortar o una rebanada todos los divs o cualquier elemento que se producen después el segundo hijo de la DIV de control ...

la respuesta es sí, para este desea que el :gt: seleccione o: http://api.jquery.com/gt-selector/

$('.control div:gt(1)').remove() 

A diferencia de :nth-child, :gt utiliza base cero indexación, por lo que el primer elemento tiene índice 0.

0

Si se refiere a aquellos otros específicos:

$(".ui-resizable-handle, .delete").remove(); 

Si se refiere a los divs en las posiciones 2 a 4 sin importar el marcado, una de las respuestas nth-child() funcionaría.

Cuestiones relacionadas