He buscado en las publicaciones para encontrar una solución a lo que me gustaría hacer. Quiero crear una lista para <datalist> usando una matriz de JavaScript. Encontré un ciclo for que funcionó para otra persona y lo modifiqué ligeramente para que funcione con una matriz 2D. Utilicé el siguiente código en JSFiddle y funciona, pero cuando lo incluyo en mi código más grande, ahora aparece <datalist> aunque el código simplemente se copie y pegue en mi código más grande.
Además, no estoy seguro de cómo cambiar el código a continuación a jQuery, si pudiera ayudar con eso, también se lo agradecería mucho.
var test = [ ['text1',1,2,3,4], ['text2',1,2,3,4], ['text3',1,2,3,4], ['text4',1,2,3,4], ['text5',1,2,3,4], ['text6',1,2,3,4], ['text7',1,2,3,4], ]; var options = ''; for(var i = 0; i < test.length; i++) { options += '<option value="'+test[i][0]+'" />'; document.getElementById('maltList').innerHTML = options; } <input name ="malt" list="maltList"/> <datalist id="maltList"></datalist>Puede usar el método jQuery#append para agregar una lista de opciones (asignadas a partir de los datos en su matriz de test usando Array#map ) a su datalist de datos. Sin embargo, dado que el código que tenía antes funcionaba como un fragmento, no estoy seguro de si esto realmente lo ayudará en cualquier contexto en el que haya fallado anteriormente.
Avíseme si recibe algún mensaje de error e intentaré ayudarlo a resolverlo.
var test = [ ['text1',1,2,3,4], ['text2',1,2,3,4], ['text3',1,2,3,4], ['text4',1,2,3,4], ['text5',1,2,3,4], ['text6',1,2,3,4], ['text7',1,2,3,4], ] $('#maltList').append(test.map(function (e) { return new Option(e[0]) })) <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name ="malt" list="maltList"/> <datalist id="maltList"></datalist>