2012-02-27 30 views
7

Trước khi tôi luôn sử dụng công cụ chọn gt để chọn tất cả các thành phần ngoại trừ đầu tiên. Bây giờ tôi đã tìm ra giải pháp có vẻ tao nhã hơn với tôi. Đó là sử dụng :not(:first) thay vì :gt(0).
Có sự khác biệt nào về hiệu suất của bộ chọn này không và bạn có đề xuất sử dụng bộ lọc nào?: gt (0) so với: không (: đầu tiên) so với .slice (1)

CHỈNH SỬA: Như đã đề cập Felix King, .slice(1) là một tùy chọn khác để chọn tất cả các phần tử ngoại trừ đầu tiên. Vì vậy, đó là nhanh hơn?

+2

thử nghiệm it.http: //jsperf.com/ – xdazz

+8

Bạn cũng có thể thử '.slice (1) 'thay vì một bộ chọn tùy chỉnh . –

+0

Cả hai đều chậm, phương pháp được đề xuất bởi @FelixKling phải là phương thức nhanh nhất. –

Trả lời

10

Thời gian cho một chút lược tả! Với một trang trống rỗng ngoài mười <span> s được lưu vào bộ biến được gọi là spans và 10.000 lần lặp, tôi nhận được 824ms cho spans.filter(':gt(0)') và 1276ms cho spans.not(':first').

Hình đạt được sử dụng console.time()console.timeEnd() trong Firefox 11.

Xét tôi phải làm 10k lặp để đạt mốc 1 giây tôi muốn đề nghị nó không quan trọng?

+0

Bạn có muốn thêm vào đó so sánh phương pháp lát của @Felix Kling mà một số người bình luận đề xuất tốt hơn không? – Chris

+1

Chắc chắn! Sử dụng phương thức 'slice (1)' cùng một phép thử xuất hiện là 79ms - nhanh hơn khoảng 10 lần so với ': gt (0)' –

+0

Tôi nghĩ rằng: không: đầu tiên sẽ làm việc nhanh hơn, nhờ thử nghiệm. Và +1 cho slice (1) so sánh quá. –

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