Các đối tượng thứ tự có được trả về bởi bộ chọn jQuery không?


93

Tất cả các bộ chọn jQuery trả về một mảng đối tượng. Các đối tượng này có luôn theo thứ tự giống như trong HTML không? Tôi có thể dựa vào điều này?

Câu trả lời:


115

Đúng.
Các jQuery 1.3.2 phát hành ghi chú nói:

Các phần tử được trả lại theo thứ tự tài liệu

Đây là một thay đổi đối với công cụ bộ chọn của jQuery sắp xếp lại các kết quả trả về theo thứ tự tài liệu, thay vì thứ tự mà các bộ chọn được chuyển vào. Thay đổi này được thực hiện để tuân thủ đặc tả API Bộ chọn (mà jQuery sử dụng nội bộ trong các trình duyệt hỗ trợ nó).

Đây không phải là trường hợp trên jQuery 1.3 :

Thứ tự của bộ chọn kiểu "a, b, c" có thể thay đổi. Các trình duyệt hỗ trợ querySelectorAll (Safari, Firefox 3.5+, Opera 10+, IE 8+) sẽ trả về các phần tử theo thứ tự tài liệu, các trình duyệt khác (hiện tại) sẽ trả lại chúng theo thứ tự được chỉ định. Trong phiên bản 1.3.2 và sau đó, tất cả các bộ chọn được phân tách bằng dấu phẩy sẽ được trả về theo thứ tự tài liệu.


1
Thật thú vị khi nó thực sự nằm trong ghi chú phát hành, và nó cũng có ý nghĩa, nhưng ai đó đã quên nó để đặt nó cũng trong api.jquery.com/multiple-selector - ai đó thân mến, hãy thêm thông tin này vào đó :)!
jave.web

Câu trả lời là thực sự cũ có ai tìm thấy một liên kết cập nhật?
Daniel Leach

1
@DanielLeach - Tôi đã cập nhật các liên kết, cảm ơn. Hành vi này vẫn đúng, nó cũng là tài liệu ở đây cho phiên bản mới nhất: api.jquery.com/multiple-selector
Kobi

8

Có thể có một số trường hợp ngoại lệ, ví dụ từ tài liệu PreAll ():

"Cho một đối tượng jQuery đại diện cho một tập hợp các phần tử DOM, phương thức .prevAll () tìm kiếm thông qua các phần tử trước của các phần tử này trong cây DOM và tạo một đối tượng jQuery mới từ các phần tử phù hợp; các phần tử được trả về theo thứ tự bắt đầu bằng anh chị em thân thiết nhất . "

http://api.jquery.com/prevAll/


3

Có, chúng luôn theo thứ tự khi chúng ở trong DOM.


0

Có thể theo thứ tự mà nó tìm thấy, một bộ chọn đi ngang qua DOM và khi nó tìm thấy một phần tử phù hợp, sẽ đặt nó vào một mảng.

Bạn có thể thực hiện một bài kiểm tra bằng cách nói 5 hộp văn bản với id là "textbox_n" trong đó n là một số, sau đó cảnh báo danh sách và xem bạn nhận được gì?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.