我应该如何在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遵循“仅供内部使用”的说明。