2011-09-22 363 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); 

,你應該得到你所需要的

相關問題