2009-12-30 14 views
53

Tengo una lista desplegable y me gustaría eliminar una opción de ella, dado el texto/valor de esa opción en particular. ¿Es posible usar jQuery? Al igual que 'agregar', que agrega una opción a la lista desplegable, ¿hay alguna función para eliminar una opción?jQuery para eliminar una opción de la lista desplegable, dado el texto/valor de la opción

Intenté buscarlo pero todo lo que obtuve fueron ejemplos en los que se eliminó todo el conjunto de opciones en la lista desplegable, que no es lo que busco.

aplausos

Respuesta

128

$("option[value='foo']").remove();

o mejores (si tiene pocos selecciona en la página):

$("#select_id option[value='foo']").remove();

+0

Funcionó. Gracias. –

+0

¿y si foo fuera una variable? ¿cómo sería la sintaxis entonces? – JeffJeffery

+2

@JeffJaffery: '$ (" opción [value = '"+ foo +"'] "). Remove();' –

18

Una vez que haya localizado el elemento desplegable

dropdownElement = $("#dropdownElement"); 

Encuentra el <option> elemento usando el jQuery attribute selector

dropdownElement.find('option[value=foo]').remove(); 
+2

Perfecto, gracias! (En todas partes donde fui, encontré información sobre cómo seleccionar una opción individual con un selector. Estaba buscando cómo eliminar una opción dado que ya tenía el menú desplegable seleccionado, que parecía el caso de uso más típico). – neminem

+0

este es el respuesta eficiente que la anterior: D –

+0

Así es como me gusta hacer las cosas, la primera vez que veo a alguien más tiene la disciplina para ser explícito y limpio como este. ¿Hay algún otro recurso en esta forma de utilizar JQuery? – Arjang

0

Sé que es muy tarde, pero después de enfoque también puede ser utilizado:

<select id="type" name="type" > 
    <option value="Permanent" id="permanent">I am here to stay.</option> 
    <option value="toremove" id="toremove">Remove me!</option> 
    <option value="Other" id="other">Other</option> 
</select> 

y si tengo que quitar segunda opción (id = toremove), la secuencia de comandos se vería como

$('#toremove').hide(); 
Cuestiones relacionadas