2011-09-22 35 views
15

Phương thức trả về jQuery .find() là gì? a đối tượng HOẶC danh sách mảng đối tượng?Làm thế nào để chuyển đổi kết quả của hàm jQuery .find() thành một mảng?

Nếu nó trả về một đối tượng chứa tất cả các phần tử phù hợp. Làm thế nào để chuyển đổi đối tượng này thành một mảng?

Nếu nó trả về một mảng các phần tử, tại sao $(xml).find("DATE").sort(mySortFunc); không hoạt động, có vẻ như jquery .find() trả về một đối tượng không thể áp dụng phương thức javascript sort() được cho là được áp dụng trên mảng.

Nói chung, tôi cần phải sắp xếp các đối tượng tìm thấy theo $(xml).find("DATE"), nhưng khi tôi sử dụng chức năng sắp xếp, nó làm tăng lỗi mà đối tượng không thể được giải quyết.

+0

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

Trả lời

22

Đa số các phương pháp jQuery trả về một đối tượng jQuery, mà có thể được truy cập như nó là một mảng (ví dụ như nó có một thuộc tính .length, các yếu tố có thể được truy cập bằng cách sử dụng ký hiệu khung vuông ([0]), và nó hỗ trợ một số phương thức mảng (slice())).

jQuery có phương thức được gọi là toArray() có thể được sử dụng để chuyển đổi đối tượng jQuery thành một mảng thực.

Bạn cũng có thể sử dụng get() không có đối số để đạt được cùng một hiệu ứng (và lưu cho bạn một vài lần nhấn phím).

Trong tương lai, bạn có thể kiểm tra các jQuery API, và kiểu trả về cho tất cả các phương pháp jQuery được liệt kê trong tài liệu có liên quan (ví dụ như cho find(), kiểu trả về là "jQuery")

4

Nếu bạn gọi .get() trên Đối tượng jQuery không có tham số, nó sẽ trả về một mảng các phần tử DOM thông thường.

1

jQuery đã hoạt động như một mảng và do đó bạn có thể áp dụng mảng như chức năng cho nó.

Cố gắng thay đổi

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

với

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

và bạn sẽ nhận được những gì bạn cần

Các vấn đề liên quan