如何将jQuery .find()函数的结果转换为数组

How to convert the result of jQuery .find() function to an array?

本文关键字:结果 转换 数组 函数 jQuery find      更新时间:2023-09-26

jQuery .find()方法返回什么?a 对象还是a 数组列表对象?

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

如果它返回一个元素数组,为什么$(xml).find("DATE").sort(mySortFunc);不工作,似乎jQuery .find()返回一个对象,不能应用Javascript sort()方法,应该应用于数组。

一般来说,我需要对$(xml).find("DATE")找到的对象进行排序,但是当我使用sort函数时,它会引发对象无法解析的错误。

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

jQuery有一个叫做toArray()的方法,可以用来将jQuery对象转换为一个真正的数组。

您也可以使用不带参数的get()来达到相同的效果(并节省您的几个按键)。

在将来,你可以检查jQuery API,所有jQuery方法的返回类型都在相关文档中列出(例如,对于find(),返回类型是"jQuery")

如果在没有参数的jQuery对象上调用.get(),它将返回一个DOM元素的常规数组

jQuery已经像数组一样工作了,因此你可以给它应用类似数组的功能。

尝试更改

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

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

你应该得到你需要的