2011-12-22 15 views
9

Mam elementu div wewnątrz innego, co następuje:JQuery Usuń() nie działa

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

i próbuję usunąć element:

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

Problem polega na tym, że nie robi "t. Przetestowałem na innych elementach na mojej stronie i to działa. Chodzi o to, że nie mogę do niego dołączyć, pokazać ani ukryć, użyj .empty. Zmieniłem go również na DIV z "filterData" jako identyfikatorem i powiedziałem JQuery, żeby go usunął, ale odmawia ...

Czy ktoś wcześniej miał taki element?

EDYCJA: Próbuję również usunąć go wewnątrz funkcji $(document).ready, więc nie mam pojęcia.

Odpowiedz

19

To nie jest jak .remove() działa

Zastosowanie

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

Jeśli używasz selektora jako parametr do remove działa jako filtr z istniejącego zestawu, a nie jako find ..

Więc możesz użyć $("#filters .filterData").remove(':first');, jeśli masz wiele .filerData i chcesz usunąć pierwsze .. (tylko przykład)

+2

Nie wiesz, czy tak jest. http://api.jquery.com/remove/ sugeruje, że selektor _ może być przekazany do '.remove()' –

+0

@RobCowie Tak, ale jeśli zauważysz, że to mówi, *** selector *** wyrażenie ** filtry ** zestaw dopasowanych elementów do usunięcia. (* aktualizacja odpowiedzi odzwierciedla to *) –

+0

Nie, wciąż nie ma szczęścia. Element wciąż jest obecny. –

3

Gaby jest poprawna, musisz po prostu użyć .remove(), a nie .remove (". FilterData"). Lub jeśli nadal chcesz zachować swój div, ale po prostu wyjąć wszystko tam, możesz użyć .empty()

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