tengo un problema a la hora de ordenar una lista de contactos (serie de DIVs) por orden alfabético y por estado del contacto (onlin y offline). El problema es que antes con este código que me encontré al llegar a la empresa no funcionaba ni con IE9 ni Firefox 4:
Código:
Ahora con unas modificaciones, me funciona en IE9, aunque NO ordena alfabéticamente pero si por estado:function sortByStatus() { var divs = getElementsByClassName(document,"status_sort"); divs.sort(compare); for (var i = 0; i < divs.length; i++) { $("#contact_info").append(divs[i]); } } function compare(div1, div2) { var id1 = div1.getAttribute("id"); var id2 = div2.getAttribute("id"); if (id1 > id2) return 1; else if (id1 < id2) return -1; else return 0; }
Código:
Y la verdad es que no se que puede pasar. Comentar que el id del DIV funciona así: numero+nombre?contacto (ejemplo: 2Pedro, siendo 2=offline y 1=online). Alguna idea qué puede ser?function compare(div1, div2) { var id1 = div1.id; var id2 = div2.id; if (id1 > id2) return 1; else if (id1 < id2) return -1; else return 0; } function sortByStatus() { var divs = document.getElementsByClassName("status_sort"); var divArray = []; for(var i=0, len = divs.length; i < len; i++) { divArray.push(divs[i]); } divArray.sort(compare ); for (i = 0; i < divs.length; i++) { $("#contact_info").append(divArray[i]); } }
Gracias de antemano.