jQuery .find()
方法返回什么? 对象或数组列表对象?
如果它返回一个包含所有匹配元素的对象。如何将此对象转换为数组?
如果它返回一个元素数组,为什么$(xml).find("DATE").sort(mySortFunc);
不起作用,似乎jquery .find()
返回一个无法应用javascript sort()方法的对象,该方法应该应用于数组
通常,我需要按$(xml).find("DATE")
对查找的对象进行排序,但是当我使用sort函数时,会引发无法解析对象的错误。
答案 0 :(得分:27)
大多数jQuery方法返回一个jQuery对象,可以像访问数组一样访问它(例如它有一个.length
属性,可以使用方括号表示法访问元素([0]
) ,它支持一些数组方法(slice()
))。
jQuery有一个名为toArray()
的方法,可用于将jQuery对象转换为真实数组。
您也可以使用不带参数的get()
来达到相同的效果(并节省几次按键)。
将来,您可以签出jQuery API,并在相关文档中列出所有jQuery方法的返回类型(例如,对于find()
,返回类型为“jQuery”)
答案 1 :(得分:6)
如果在没有参数的jQuery对象上调用.get()
,它将返回一个常规的DOM元素数组。
答案 2 :(得分:2)
jQuery已经像一个数组,因此你可以将类似数组的功能应用到它。
尝试更改
$(xml).find("DATE").sort(mySortFunc);
与
Array.prototype.sort.apply($(xml).find("DATE"), mySortFunc);
你应该得到你需要的东西