2011-12-22 29 views
9

Tengo un elemento DIV dentro de otro de la siguiente manera:jQuery Eliminar() no funciona

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

y estoy tratando de eliminar el elemento:

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

El problema es que doesn 't. He probado otros elementos en mi página y funciona. El caso es que no puedo agregarlo, mostrarlo u ocultarlo, usar .empty. También lo cambié para ser un DIV con 'filterData' como el ID y le dije a JQuery que lo elimine pero se niega a ...

¿Alguien ha tenido un elemento stuborn como este antes?

EDITAR: También estoy tratando de eliminarlo dentro de una función $(document).ready, así que no tengo ni idea.

Respuesta

19

Eso no es cómo funciona .remove()

Uso

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

Si utiliza un selector como un parámetro para remove que actúa como un filtro en el conjunto existente, no como find ..

Así que podría usar $("#filters .filterData").remove(':first'); si tuviera muchos .filerData y quisiera eliminar el primero .. (solo un ejemplo)

+2

No estoy seguro de que sea así. http://api.jquery.com/remove/ sugiere que un selector _can_ sea pasado a '.remove()' –

+0

@RobCowie Sí, pero si observa que dice, *** selector *** expresión que ** filtra ** el conjunto de elementos coincidentes que se eliminarán. (* actualice la respuesta para reflejar esto *) –

+0

No, todavía no hubo suerte. El elemento aún está presente. –

3

Gaby es correcto, solo tiene que utilizar .remove() y no. Eliminar ('. FilterData'). O bien, si aún desea conservar su div, pero simplemente saque todo allí, puede usar .empty()

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