我应该如何在jQuery中使用.sort()?

我一直在看很多人在jQuery中使用.sort()函数的例子。

例如:

 $('#myId').sort(..); 

我在jQuery API中找不到sort()任何文档,有人能告诉我它的用法吗?

因为它不是jQuery(正式)的一部分,而是代理的Array.sort 。

正如Derek指出的那样, jQuery(...)不返回数组。 相反,jQuery 添加了一个代理来使jQuery对象“像一个数组”:

 // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: [].sort, // <-- here splice: [].splice 

此代理有效,因为函数中的this由调用函数的对象确定。 此外, Array.sort (和Array.splice )可以处理任何“数组像”(具有length和大概属性0..length-1 )。 以下是使用Array.sort的自定义对象[ab]的示例:

 var a = {0: "z", 1: "a", length: 2, sort: [].sort} a[0] // -> "z" a.sort() // in-place modification, this === a a[0] // -> "a" a instanceof Array // -> false (never was, never will be Array) 

YMMV遵循“仅供内部使用”的说明。