2011-05-24 26 views
41

¿Es posible borrar el contenido de un objeto de selección html usando JQuery? Tengo una función que obtiene una lista para completar la selección y la agrega a la selección, por lo que necesito alguna forma de borrar los datos anteriores antes de agregarlos.clearing seleccionar usando jquery

Respuesta

84

uso .empty()

$('select').empty().append('whatever'); 

también se puede utilizar .html() pero tenga en cuenta

Cuando .html() se utiliza para ajustar el contenido de un elemento, cualquier contenido que estaba en ese elemento es completamente reemplazado por el nuevo contenido. Considere el siguiente código HTML:

alternativa: --- Si desea que sólo los elementos de opción a-ser-eliminar, utilice .remove()

$('select option').remove(); 
+0

Creo que desee agregar() aquí en lugar de appendTo, ¿verdad? –

+0

¿Entonces puede vaciar la lista anterior y anexar la nueva lista en una línea de código? ¡Excelente! – user517406

+0

.html() no se debe utilizar, ya que no elimina ningún dato o elementos bount. En su lugar, use los otros dos (.empty() o .remove()) que eliminan todos los datos y elementos enlazados. – helios456

15

Si no le importan los elementos secundarios, p. optgroup, puede utilizar empty() ...

$('select').empty(); 

De lo contrario, si sólo quiere option elementos eliminado, utilice remove().

$('select option').remove(); 
+1

+1 para la alternativa – diEcho

4
$('option', '#theSelect').remove(); 
1

Suponiendo una lista como abajo - y asumiendo algunas de las opciones fueron seleccionadas ... (esta es una selección múltiple, pero esto también funcionará en una sola selección.

<select multiple='multiple' id='selectListName'> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
</select> 

En alguna función llamada basada en algún evento, el siguiente código borrará todas las opciones seleccionadas.

$ ("# selectListName"). Prop ('selectedIndex', -1);

0

Here is un pequeño plugin jQuery que (entre otras cosas) puede vaciar una lista desplegable.

acaba de escribir:

$('your-select-element').selectUtils('setEmpty'); 
Cuestiones relacionadas