問題是我有一個聯繫人列表,當有人改變他/她的狀態時,我嘗試將它們移動到列表的頂部。一切工作到現在,與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