2012-03-01 19 views
8

ho questo HTMLRimozione Figli di DIV dopo un certo numero

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

Come posso rimuovere il secondo terzo e quarto div da questo HTML utilizzando jQuery ....

+0

Se io non so quanti div avverrà dopo il campo di input esiste un modo per tagliare o FETTA tutti i div o qualsiasi elemento che si verificano dopo il secondo figlio del controllo DIV. .. – HardCode

+0

Sì, si utilizza il selettore ': gt'. Vedi l'aggiornamento nella mia risposta per la spiegazione. –

risposta

6

Prova:

 

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

:gt selettore ti permette di selezionare quale ha indice maggiore di 1 questi sono 3. elementi e altro

ecco un esempio: http://jsfiddle.net/Am7Vw/1/

+0

questo ha funzionato perfettamente un altro codice di esempio $ ('. Pos_abs .mjx-box> span: gt (150)'). Remove(); –

-1

È possibile farlo

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

Oppure si può fare anche questo

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

La tua prima soluzione non funzionerà. Dopo la prima rimozione, c'è un elemento in meno, quindi gli indici cambiano tutti. –

12

Siete alla ricerca di :nth-child: http://api.jquery.com/nth-child-selector/

Funziona così:

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

Notare che :nth-child utilizza uno a base di indicizzazione, in modo che il primo elemento ha indice 1.

UPDATE: In risposta a tale questione, il PO ha scritto in un commento

Se io non so quanti div si verificherà dopo il campo di inserimento c'è un modo per tagliare o FETTA tutti i div o qualsiasi elemento che si verificano dopo il secondo figlio del controllo DIV ...

la risposta è sì, per questo si desidera che il :gt: select o: http://api.jquery.com/gt-selector/

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

Al contrario di :nth-child, :gt utilizza a base zero indicizzazione, in modo che il primo elemento ha indice 0.

0

Se vuoi dire quelle specifiche:

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

Se intendi i div alle posizioni 2-4 indipendentemente dal markup, una delle risposte nth-child() funzionerebbe.

Problemi correlati