¿Cuál es la forma más fácil de agregar un elemento option
a un menú desplegable usando jQuery?
esto funcionara?
$("#mySelect").append('<option value=1>My option</option>');
javascript
jquery
Haga clic en Upvote
fuente
fuente
$("#mySelect").html(....)
para reemplazar las opciones actuales con las nuevas.Respuestas:
Esto NO funcionó en IE8 (pero sí en FF):
Este trabajo sí:
fuente
display: table;
se NO aplica como estilo al elemento de selección. Esto romperá el código jsvar o = new Option('option text', 'value'); o.innerHTML = 'option text'; document.getElementById('selectList').appendChild(o);
Personalmente, prefiero esta sintaxis para agregar opciones:
Si agrega opciones de una colección de elementos, puede hacer lo siguiente:
fuente
items={option1:{value:1,text:1},option2:{value:2,text:2}}
Puede agregar la opción utilizando la siguiente sintaxis. También puede visitar la opción de manejo en jQuery para obtener más detalles.
fuente
value
lugar deval
). El código correcto debería ser$('select').append('<option value="1">One</option>');
Si el nombre o el valor de la opción es dinámico, no querrá preocuparse por escapar de caracteres especiales; en esto puede preferir métodos DOM simples:
fuente
Opción 1-
Puedes probar esto
Me gusta esto-
Opcion 2-
O prueba esto
Me gusta esto-
fuente
Esto es muy simple:
o
fuente
Eso funciona bien
Si agrega más de un elemento de opción, recomendaría realizar la adición una vez en lugar de realizar una adición en cada elemento.
fuente
por alguna razón, hacer
$("#myselect").append(new Option("text", "text"));
no funciona para mí en IE7 +Tuve que usar
$("#myselect").html("<option value='text'>text</option>");
fuente
Para ayudar al rendimiento, debe tratar de alterar solo el DOM una vez, incluso más si agrega muchas opciones.
fuente
string.join()
para concatenar cadenasfuente
selectmenu()
no es parte del núcleo jQuery y es un widget jQueryUI . Eso lo convierte en una solución bastante dura, ¿no?Me gusta usar el enfoque no jquery:
fuente
Puede agregar opciones dinámicamente en el menú desplegable como se muestra en el siguiente ejemplo. Aquí, en este ejemplo, tomé los datos de la matriz y agarré el valor de la matriz al menú desplegable como se muestra en la captura de pantalla de salida
Salida:
fuente
No se menciona en ninguna respuesta, pero útil es el caso en el que desea que también se seleccione esa opción, puede agregar:
fuente
fuente
Hay dos maneras. Puedes usar cualquiera de estos dos.
Primero:
Segundo:
fuente
Si desea insertar la nueva opción en un índice específico en la selección:
Esto insertará el "Nuevo elemento" como el tercer elemento en la selección.
fuente
Puede agregar y establecer el atributo Value con texto:
fuente
Encontramos algún problema cuando agrega una opción y usa jquery validate. Debe hacer clic en un elemento en la lista de selección múltiple. Agregará este código para manejar:
fuente
fuente
Estos son solo puntos rápidos para el mejor rendimiento
siempre que trabaje con muchas opciones, cree una cadena grande y luego agréguela a 'seleccionar' para obtener el mejor rendimiento
fg
var $ mySelect = $ ('# mySelect'); var str = '';
Aun más rápido
fuente
Si obtiene datos de algún objeto, simplemente reenvíe ese objeto para que funcione ...
Nombre e Id son nombres de propiedades de objetos ... para que pueda llamarlos como quiera ... Y, por supuesto, si tiene Array ... desea construir una función personalizada con for loop ... y luego simplemente llame a esa función en documento listo ... Saludos
fuente
Basado en la respuesta de dule para agregar una colección de artículos, una frase
for...in
también hará maravillas:Los valores e índices de los objetos se asignan a las opciones. ¡Esta solución funciona incluso en la antigua jQuery (v1.4) !
fuente
si tienes optgroup dentro de select , tienes un error en DOM.
Creo que la mejor manera:
fuente
U puede probar el siguiente código para agregar a la opción
fuente
fuente
Así lo hice, con un botón para agregar cada etiqueta de selección.
fuente
$(document).ready(function(){ $("#button").click(function() { $('#id_table_AddTransactions').append('<option></option>'); }); });
Puedes hacer esto en ES6:
fuente
Si alguien viene aquí buscando una manera de agregar opciones con propiedades de datos
Usando attr
Uso de datos - versión agregada 1.2.3
fuente