Foros del Web » Programando para Internet » Javascript »

Ordenar listas en JavaScript

Estas en el tema de Ordenar listas en JavaScript en el foro de Javascript en Foros del Web. Tengo una lista (tipo combo pero no desplegable) a la que añado elementos. Como los inserta al final del mismo quiero ordenarlos alfabéticamente, bien a ...
  #1 (permalink)  
Antiguo 26/06/2002, 05:23
 
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 65
Antigüedad: 22 años
Puntos: 0
Ordenar listas en JavaScript

Tengo una lista (tipo combo pero no desplegable) a la que añado elementos. Como los inserta al final del mismo quiero ordenarlos alfabéticamente, bien a partir del "value" o bien a partir del "text". ¿Cómo se puede?¿Algún ejemplo?
  #2 (permalink)  
Antiguo 27/06/2002, 14:33
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 3 meses
Puntos: 1
Re: Ordenar listas en JavaScript

Hola DHURAY :)

Me hiciste sudar bastante <img src='images/tongue.gif' width=15 height=15 align=middle>, pero aquí está

&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt;Select&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;SCRIPT&gt;
//Valores
var elementos = new Array();

function ordenar() {
//Leer
for (i = 0; i &lt; cboSort.options.length; i++) {
elementos[I] = cboSort.options(i).value + &quot; &quot; + cboSort.options(i).text;
}
//Vaciar
while (cboSort.options.length &gt; 0) cboSort.remove(0);
//Ordenar
ordenados = elementos.sort();
//Llenar
FillSortDropDownWithFields(cboSort, ordenados);
}

// Llenar el dropdown con los valores del array
function FillSortDropDownWithFields(oDropDown, elementos) {
// Solo llenar si está vacío
if (oDropDown.options.length &gt; 0)
return;

// Agregar cada una de las columnas
for (i = 0; i &lt; elementos.length; i++) {
datos = elementos.split(&quot; &quot;);
AddItemToDropDown(oDropDown, datos[0], datos[1]);
}
cboSort.selectedIndex = 0;
}

// Agregar a la lista el par value/text especificado
function AddItemToDropDown(oDropDown, cValue, cText) {
oOption = document.createElement('OPTION');
oOption.value = cValue;
oOption.text = cText;
oDropDown.add(oOption);
}
&lt;/SCRIPT&gt;
&lt;BODY&gt;
&lt;Button onClick=ordenar()&gt;Ordenar&lt;/BUTTON&gt;&lt;BR&gt;
&lt;SELECT ID=cboSort&gt;
&lt;OPTION value=P&gt;Perro
&lt;OPTION value=G&gt;Gato
&lt;OPTION value=T&gt;Tigre
&lt;OPTION value=C&gt;Caballo
&lt;/SELECT&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;

Espero que te sirva, creo que sólo funciona en Internet Explorer.

Suerte ;)


<IMG src=banderas/argentina.gif>
  #3 (permalink)  
Antiguo 27/06/2002, 14:38
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 3 meses
Puntos: 1
Re: Ordenar listas en JavaScript

Christian!!! Hay que cambiar eso de [ i ], jode cuando usás arrays!!!!!

Aquí va de nuevo:

&lt;HTML&gt;
&lt;HEAD&gt;
&lt;TITLE&gt;Select&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;SCRIPT&gt;
//Valores
var elementos = new Array();

function ordenar() {
//Leer
for (i = 0; i &lt; cboSort.options.length; i++) {
elementos[ i ] = cboSort.options(i).value + &quot; &quot; + cboSort.options(i).text;
}
//Vaciar
while (cboSort.options.length &gt; 0) cboSort.remove(0);
//Ordenar
ordenados = elementos.sort();
//Llenar
FillSortDropDownWithFields(cboSort, ordenados);
}

// Llenar el dropdown con los valores del array
function FillSortDropDownWithFields(oDropDown, elementos) {
// Solo llenar si está vacío
if (oDropDown.options.length &gt; 0)
return;

// Agregar cada una de las columnas
for (i = 0; i &lt; elementos.length; i++) {
datos = elementos[ i ].split(&quot; &quot;);
AddItemToDropDown(oDropDown, datos[0], datos[1]);
}
cboSort.selectedIndex = 0;
}

// Agregar a la lista el par value/text especificado
function AddItemToDropDown(oDropDown, cValue, cText) {
oOption = document.createElement('OPTION');
oOption.value = cValue;
oOption.text = cText;
oDropDown.add(oOption);
}
&lt;/SCRIPT&gt;
&lt;BODY&gt;
&lt;Button onClick=ordenar()&gt;Ordenar&lt;/BUTTON&gt;&lt;BR&gt;
&lt;SELECT ID=cboSort&gt;
&lt;OPTION value=P&gt;Perro
&lt;OPTION value=G&gt;Gato
&lt;OPTION value=T&gt;Tigre
&lt;OPTION value=C&gt;Caballo
&lt;/SELECT&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
  #4 (permalink)  
Antiguo 28/06/2002, 02:29
 
Fecha de Ingreso: abril-2002
Ubicación: Madrid
Mensajes: 65
Antigüedad: 22 años
Puntos: 0
Re: Ordenar listas en JavaScript

Árduo trabajo! Muchas gracias por todo
  #5 (permalink)  
Antiguo 31/08/2009, 12:02
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ordenar listas en JavaScript

¿Y como quedaria? para un

Cita:
<div id="a">A</div>
<div id="d">D</div>
<div id="c">C</div>
<div id="b">B</div>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.