2011-12-22 18 views
9

Ho un elemento DIV all'interno di un altro come segue:JQuery Remove() non funziona

<div id="filters"> 
    <div class="filterData">hello</div> 
</div> 

e sto cercando di rimuovere l'elemento:

$("#filters").remove('.filterData'); 

Il problema è che doesn 't. Ho testato altri elementi sulla mia pagina e funziona. Il fatto è che non posso accodarlo, mostrarlo o nasconderlo, usare .empty. Ho anche cambiato il DIV con 'filterData' come ID e ho detto a JQuery di rimuoverlo ma si rifiuta di ...

Qualcuno ha avuto un elemento stubo come questo prima?

EDIT: Sto anche provando a rimuoverlo all'interno di una funzione $(document).ready quindi non ne ho idea.

risposta

19

Questo non è il modo in .remove() funziona

Usa

$("#filters .filterData").remove(); 

Se si utilizza un selettore come parametro per remove agisce come un filtro sul set esistente, non come find ..

Quindi è possibile utilizzare $("#filters .filterData").remove(':first'); se si dispone di molti .filerData e si desidera rimuovere il primo .. (solo un esempio)

+2

Non è sicuro che sia così. http://api.jquery.com/remove/ suggerisce che un selettore _can_ venga passato a '.remove()' –

+0

@RobCowie Sì, ma se si nota che dice, *** selettore *** espressione che ** filtri ** il set di elementi corrispondenti da rimuovere. (* aggiorna la risposta per rispecchiare questo *) –

+0

No, ancora senza fortuna. L'elemento è ancora presente. –

3

Gaby è corretto, è sufficiente utilizzare .remove() e non .remove ('. FilterData'). O se vuoi comunque mantenere il tuo div, ma solo eliminare tutto, puoi usare .empty()

$(".filterData").empty();