Mi código funciona en IE pero se rompe en Safari, Firefox y Opera. (gran sorpresa)
document.getElementById("DropList").options.length=0;
Después de buscar, aprendí que es lo length=0
que no le gusta.
Lo he intentado ...options=null
y var clear=0; ...length=clear
con el mismo resultado.
Estoy haciendo esto a varios objetos a la vez, así que estoy buscando un código JS ligero.
javascript
html-select
Kirt
fuente
fuente
<option selected>
?? (Google nos puso aquí pero no está aquí) ... Vea la solución real document.getElementById ("form1"). reset () .Respuestas:
Puede usar lo siguiente para borrar todos los elementos.
fuente
empty()
, por lo que lo harían$("DropList").empty();
Para eliminar las opciones de un elemento HTML de
select
, puede utilizar elremove()
método:Es importante eliminar el al
options
revés; como elremove()
método reorganiza laoptions
colección. De esta manera, ¡se garantiza que el elemento a eliminar aún existe!fuente
Si desea tener un script ligero, entonces elija jQuery. En jQuery, la solución para eliminar todas las opciones será como:
fuente
for (a in select.options) { select.options.remove(0); }
funciona bien.$("#droplist").empty();
código de tipo en comparación con miles de líneas de JS de vainilla hacen que valga la pena agregar jQuery. Si estamos hablando de marcado / cosméticos para una página web simple, estás 100% correcto.Probablemente, no sea la solución más limpia, pero definitivamente es más simple que eliminar uno por uno:
fuente
Esta es la mejor manera :
fuente
while (comboBox.options.length) comboBox.remove(0);
Este es un camino corto:
Una línea, no para, no JQuery, simple.
fuente
fuente
Me gustaría señalar que el problema en la pregunta original ya no es relevante hoy. Y hay una versión aún más corta de esa solución:
He probado que ambas versiones funcionan en Firefox 52, Chrome 49, Opera 36, Safari 5.1, IE 11, Edge 18, las últimas versiones de Chrome, Firefox, Samsung Internet y UC Browser en Android, Safari en iPhone 6S, Android 4.2. 2 navegador de valores. Creo que es seguro concluir que es absolutamente compatible con cualquier dispositivo que haya en este momento, por lo que recomiendo este enfoque.
fuente
Este es un JavaScript un poco moderno y puro
document.querySelectorAll('#selectId option').forEach(option => option.remove())
fuente
con PrototypeJS :
fuente
Si está utilizando JQuery y su control de selección tiene ID "DropList", puede eliminar sus opciones de esta manera:
En realidad, me funciona con cualquier lista de opciones, como datalist.
Espero eso ayude.
fuente
Tenga en cuenta que una selección puede tener tanto la
colección optgroup como las
opciones
como elementos secundarios .
Entonces,
Método 1
Método 2
Probé, ambos funcionan en Chrome.
Me gusta el método # 1 más simple y anticuado.
fuente
$select.html('')
Tratar
O tal vez busque en la función removeChild ().
O si usas jQuery framework.
fuente
¡Usar JQuery es una forma más bonita, corta e inteligente de hacerlo!
fuente
Esto se puede usar para borrar opciones:
fuente
Ir en reversa. La razón es que el tamaño disminuye después de cada eliminación.
fuente
Espero, este código te ayudará
fuente
Creo que es el mejor sol. es
fuente
Las soluciones más simples son las mejores, por lo que solo necesita:
fuente
Los elementos deben eliminarse a la inversa, de lo contrario, se producirá un error. Además, no recomiendo simplemente establecer los valores en
null
, ya que eso puede causar un comportamiento inesperado.O si lo prefiere, puede hacerlo una función:
fuente
fuente
El código de la respuesta anterior necesita un ligero cambio para eliminar la lista completa, verifique este fragmento de código.
actualice la longitud y eliminará todos los datos de la lista desplegable. Espero que esto ayude a alguien.
fuente
fuente
Si tiene que admitir IE y tiene más de 100 elementos en su lista de selección, le recomiendo que considere reemplazar la selección con una función como esta:
El parámetro select debe ser el elemento de un selector jquery o de la llamada document.getElementBy. El único inconveniente de esto es que pierde los eventos que había conectado a la selección, pero puede volver a conectarlos fácilmente cuando se devuelve de la función. Estaba trabajando con una selección que tenía ~ 3k elementos y me tomaría 4 segundos en IE9 borrar la selección para poder actualizarla con el nuevo contenido. Casi instantáneo haciéndolo de esta manera.
fuente
$('#selectbox').replaceWith($('#selectbox')[0].cloneNode(false));
Para Vanilla JavaScript hay una manera simple y elegante de hacer esto:
fuente
Hoy estaba enfrentando el mismo problema, hice lo siguiente mientras recargaba el cuadro de selección. (En llano JS)
fuente
fuente