¿Cómo se eliminan todas las opciones de un cuadro de selección y luego se agrega una opción y se selecciona con jQuery?
Usando jQuery principal, ¿cómo se eliminan todas las opciones de un cuadro de selección, luego se agrega una opción y se selecciona?
Mi cuadro de selección es el siguiente.
<Select id="mySelect" size="9"> </Select>
EDITAR: El siguiente código fue útil para el encadenamiento. Sin embargo, (en Internet Explorer) .val('whatever')
no seleccionó la opción que se agregó. (Utilicé el mismo 'valor' tanto en como .append
) .val
.
$('#mySelect').find('option').remove().end()
.append('<option value="whatever">text</option>').val('whatever');
EDITAR: Al intentar que imite este código, utilizo el siguiente código cada vez que se restablece la página/formulario. Este cuadro de selección está poblado por un conjunto de botones de opción. .focus()
Estaba más cerca, pero la opción no aparecía seleccionada como ocurre con .selected= "true"
. No hay ningún problema con mi código existente; solo estoy intentando aprender jQuery.
var mySelect = document.getElementById('mySelect');
mySelect.options.length = 0;
mySelect.options[0] = new Option ("Foo (only choice)", "Foo");
mySelect.options[0].selected="true";
EDITAR: la respuesta seleccionada se acercaba a lo que necesitaba. Esto funcionó para mí:
$('#mySelect').children().remove().end()
.append('<option selected value="whatever">text</option>') ;
Pero ambas respuestas me llevaron a mi solución final.
$('#mySelect')
.find('option')
.remove()
.end()
.append('<option value="whatever">text</option>')
.val('whatever')
;
$('#mySelect')
.empty()
.append('<option selected="selected" value="whatever">text</option>')
;
¿Por qué no utilizar JavaScript simple?
document.getElementById("selectID").options.length = 0;
Si su objetivo es eliminar todas las opciones de la selección excepto la primera (normalmente la opción "Elija un elemento"), puede usar:
$('#mySelect').find('option:not(:first)').remove();