jQuery javascript自定义排序程序在Firefox中运行,但IE似乎没有得到它…(复制粘贴示例代码)

我根据应用程序中的实际问题构建了此示例代码。 我有一个自定义排序过程来排序jQuery数组。 容器包含具有特殊属性的项列表。

用于分类:

  1. 加载临时数组中的所有项目
  2. 清除容器
  3. 将临时数组排序为新数组
  4. 将已排序的项目附加到容器

不知何故,Firefox知道如何排序,但IE不知道。 有人能告诉我什么不能正常工作吗?

(你可以将下面的html复制粘贴到一个空的.html文件中,它应该立即工作)

    jQuery.fn.sort = function() { return this.pushStack( [].sort.apply( this, arguments ), []); } function DoTheSort() { //Fetch elements in jQueryElement var sortableArray = $('#sortables').find('div.sortable'); //Clear the sortables container $('#sortables').empty(); //Sort the array var sortedArray = $(sortableArray).sort(sortProcedure); //Append sorted items jQuery.each(sortedArray, function() { alert($(this).attr("sortvalue")); $('#sortables').append(this); }); } function sortProcedure(a, b) { var value1 = parseInt($(a).attr("sortvalue")); var value2 = parseInt($(b).attr("sortvalue")); return value1 > value2; }    Sort 
5
1
4
1
2
9
3

您的排序过程是巧妙的错误:您还需要考虑相等性,而布尔值不是正确的返回类型(参见附录)。

做这个:

 return value1 - value2; 

代替:

 return value1 > value2; 

附录:

如果A> B,则排序比较函数f(A,B)的一般forms需要返回> 0,如果A