2011-09-22 357 views
15

jQuery .find()方法返回什么?一个对象或对象的数组列表如何将jQuery .find()函数的结果转换为数组?

如果它返回包含所有匹配的元素中的对象。如何将此对象转换为数组?

如果它返回元件的阵列,为什么$(xml).find("DATE").sort(mySortFunc);不起作用,它似乎.find()返回其不能应用这是应该阵列上要施加的javascript sort()方法的对象jquery的。

一般情况下,我需要排序的对象由$(xml).find("DATE")发现,但是当我使用排序功能,提高错误的对象不能得到解决。

+0

http://api.jquery.com/jQuery.makeArray/? – markus

回答

22

大多数jQuery方法返回一个jQuery对象,其可以像它被访问是一个数组(例如,它具有一个.length属性,元件可以使用方括号([0])来访问,并且它支持一些数组方法(slice()))。

jQuery有一个称为toArray()方法,其可以被用于将jQuery对象转换为一个真正的数组。

您还可以使用get()不带任何参数,以达到同样的效果(并保存你几个按键)。

在未来,你可以检出jQuery API,以及所有jQuery方法的返回类型相关的文档中列出(如find(),返回类型是“jQuery的”)

4

如果您在通话.get()没有参数的jQuery对象,它会返回一个DOM元素的常规数组。

1

的jQuery已经就像一个阵列,这样的话你可以申请阵列一样的功能吧。

尝试改变

$(xml).find("DATE").sort(mySortFunc); 

Array.prototype.sort.apply($(xml).find("DATE"), mySortFunc); 

,你应该得到你所需要的

相关问题