问题是我有一个联系人列表,当有人改变他/她的状态时,我尝试将它们移动到列表的顶部。一切工作到现在,与IE9,和Firefox 4不工作。我告诉你的代码:JavaScript排序不与IE9一起使用?
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;
}
任何想法或可能的解决?谢谢。
更新
我试图MrBuuBuu解决方案,它的工作原理patially,因为现在的排序状态的作品,但字母排序不能正常工作。我必须改变MrBuuBuu解决方案的一部分,比较功能,因为我比较联系人的姓名和代表状态的姓名之前的号码(例如约翰,2表示离线,1表示在线),所以我必须比较与'<'和'>'并返回1,-1或0.
但最糟糕的是,现在它不适用于IE7或IE8 ...按状态排序不起作用。
真的很奇怪,有什么想法吗?
我想我的问题是id1 - id2,因为他们的内容,例如,2John和1Peter,所以结果是NaN。我需要弄清楚如何解决这个问题,只取数字。谢谢。 – Datenshi 2011-03-25 04:32:31
试试这个版本。这应该工作。 – JWC 2011-03-25 14:31:52