Hola Cargo unos combos "select" y en chrome me muestra cualquier orden.
for (id in matriz[valor])
{
comboDestino.options[i] = new Option(matriz[valor][id], id);
i++;
}
Alguien tiene alguna idea....
Saludos.
| |||
Respuesta: Orden de un combo mal en chrome qué raro, aunque nunca lo hago así, yo uso esta forma y nunca me ha fallado:
Código Javascript:
Ver original |
| ||||
Respuesta: Orden de un combo mal en chrome lo ha probado en chrome 11 y funciona. prueba con este Cita: <html> <head> <script typ="text/javascript"> window.onload = function() { var mat = ['a', 'b', c = [1,2,3,4], 'd', 'e', 'f', 'g', 'h', 'i']; var sel = document.getElementById("combox"); for(var i in mat[2]) { var opt = document.createElement("option"); opt.value = i; opt.text = mat[2][i]; sel.add(opt, null); } } </script> </head> <body> <select id="combox"></select> </body> </html> |
| ||||
Respuesta: Orden de un combo mal en chrome buenas, el estandar ecma dice que no hay norma sobre el orden que se deben enumerar las propiedades en un ciclo for/in. puede que tu caso sea la consecuencia de esto. ![]()
__________________ la maldad es una virtud humana, y la espiritualidad es la lucha del hombre contra su maldad. |
| ||||
Respuesta: Orden de un combo mal en chrome Cita: Claro el problema no es el combo como lo muestra si no el FOR como lo recorre.El tema es que no recorre la matriz en orden de agregado si no en el orden del ID solo. No se como resolverlo por ahora :( Gracias por la ayuda.
__________________ Marcelo Davila. :. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :. |
| ||||
Respuesta: Orden de un combo mal en chrome Cita: exactamente a eso me referia en la afirmacion anterior. de todos modos, no veo porque usar un bucle for/in en un array, y mas en tu caso que lo deseas por orden de entrada. utiliza un bucle for normal. si no el FOR como lo recorre.
__________________ la maldad es una virtud humana, y la espiritualidad es la lucha del hombre contra su maldad. |
| ||||
Respuesta: Orden de un combo mal en chrome Cita: Lo intento con un for normal pero me da error en el length, no pasa de ahi Se puede hacer length de un arrar dentro de otro? for (temp = 0; temp <= matriz[valor].length; temp++) { }
__________________ Marcelo Davila. :. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :. |
| ||||
Respuesta: Orden de un combo mal en chrome sí, claro. tomando el arreglo de mi anterior ejemplo Cita: for(var i = 0; i < mat[2].length; i++) { document.getElementById('valores').innerHTML += mat[2][i]; } |
| ||||
Respuesta: Orden de un combo mal en chrome Me parece que lo que estoy haciendo mal es crear el array matriz[1]={72: 'Apartamentos', 71: 'Casas', 17: 'Viviendas en Balnearios'} Asi es como lo creo yo, pero al hacerlo asi me coloca apartamentos en el lugar 72 y todo asi.
__________________ Marcelo Davila. :. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :. |
| ||||
Respuesta: Orden de un combo mal en chrome lo que intentas crear es un array de objetos. veamos si esto te resuelve algo Cita: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es" xml:lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> <script type="text/javascript"> item = [ europa = [ {pais : 'españa', email : 'www.url.com'}, {pais : 'portugal', email : 'www.url.com'} ], africa = [ {pais: 'marruecos', email : 'www.url.com'}, {pais: 'congo', email : 'www.url.com'}, {pais: 'tunez', email : 'www.url.com'} ], america = [ {pais : 'mejico', email : 'www.url.com'}, {pais : 'honduras', email : 'www.url.com'}, {pais : 'argentina', email : 'www.url.com'}, {pais : 'brasil', email : 'www.url.com'}, ] ] function fnc(it) { for (var i = 0; i < item[it].length; i++) { alert('país: ' +item[it][i].pais+ ' email: '+item[it][i].email); } } </script> </head> <body> <form> <select onchange="fnc(this.selectedIndex)"> <option value="">europa</option> <option value="">áfrica</option> <option value="">america</option> </select> </body> </html> |
| ||||
Respuesta: Orden de un combo mal en chrome hola @isabelm, tengo una curiosidad, ya que por segunda vez veo que asi lo haces. ¿por que defines un token en la declaracion de un array multidimensional? me refiero....
Código:
item = [ europa = [
__________________ la maldad es una virtud humana, y la espiritualidad es la lucha del hombre contra su maldad. |
| ||||
Respuesta: Orden de un combo mal en chrome si tu pregunta va por el lado de alguna razón técnica, no es así. supongo que es por que cuando estás en los inicios, ves que alguien lo hace así, me pareció más legible y te acostumbras a ello. a mí esto me cuesta mas leerlo Cita: hay alguna diferencia en el rendimiento o ejecución??item = [ [ {pais : 'españa', email : 'www.url.com'}, {pais : 'portugal', email : 'www.url.com'} ], [ {pais: 'marruecos', email : 'www.url.com'}, {pais: 'congo', email : 'www.url.com'}, {pais: 'tunez', email : 'www.url.com'} ], [ {pais : 'mejico', email : 'www.url.com'}, {pais : 'honduras', email : 'www.url.com'}, {pais : 'argentina', email : 'www.url.com'}, {pais : 'brasil', email : 'www.url.com'} ] ] un saludo |
| ||||
Respuesta: Orden de un combo mal en chrome hola @isabel, me parecio curioso que escribieras de esa forma y pense que quizas era simplemente estilo propio de escribir, como bien tu dices para facilitarte la lectura y comprehension. de hecho, pense que el codigo deberia dar error pero me equivoque. por otro, no creo que tenga algun efecto en el rendimiento. lo que si considero es que debes tener cautela o al menos estar conciente de que estas creando variables globales. y no es que sea un peligro grave, sino que dependiendo de la estructura o control que quieras manejar en tu codigo, podrias exponer los datos en el ambito equivocado. por ejemplo, si quieres los datos sean manipulados o leidos especificamente desde una funcion y que no se pueda accesar directamente, entonces tendrias que crear un closure con ese dato json. pero al tener declaracion de variables globales, entonces estos quedan expuestos. si te sirve, puedes adoptar la tecnica mas comun, comentarios.
Código:
item = [ // europa ; [ {pais : 'españa', email : 'www.url.com'}, {pais : 'portugal', email : 'www.url.com'} ], // o alguna variante como la siguiente linea ; [ // africa ; {pais: 'marruecos', email : 'www.url.com'}, {pais: 'congo', email : 'www.url.com'}, {pais: 'tunez', email : 'www.url.com'} ], // america ; [ {pais : 'mejico', email : 'www.url.com'}, {pais : 'honduras', email : 'www.url.com'}, {pais : 'argentina', email : 'www.url.com'}, {pais : 'brasil', email : 'www.url.com'}, ] ] // item ; ![]()
__________________ la maldad es una virtud humana, y la espiritualidad es la lucha del hombre contra su maldad. |
Etiquetas: |