Meskipun :lt(20)pendekatannya terlihat jauh lebih bersih, menggunakan slice jauh lebih efisien jika Anda memiliki hasil yang besar untuk memulai. Sayangnya, ketika mengevaluasi ": lt" dan penyeleksi posisi lainnya, jQuery mengulangi seluruh set , bahkan jika itu hanya mendapatkan elemen pertama. Saya telah menulis lebih banyak tentang ini di blog saya di sini: spadgos.com/?p=51
nickf
1
Terima kasih, persyaratan tambahan dari permintaan saya adalah tentang pertunjukan, jadi ini jawaban yang tepat untuk saya. Terima kasih kepada yang lain untuk menunjukkan: pemilih juga.
Omiod
3
Komentar informatif oleh @nickf, tetapi tautan blog dan tautan grafik sepertinya tidak berfungsi
Fractalf
1
Tidak dapat mengedit sekarang maaf - pada dasarnya, menggunakan slice jauh lebih cepat.
nickf
92
Gunakan pemilih palsu:
$("a:lt(n)")
Ini cocok dengan elemen sebelum yang ke-n (elemen ke-n dikecualikan). Penomoran dimulai dari 0.
Saya suka menggunakan gaya jQuery, ini lebih elegan, daripada rantai.
Fedir RYKHTIK
22
Saya menemukan catatan ini di akhir dokumen lt () :
Catatan Tambahan:
Karena: lt () adalah ekstensi jQuery dan bukan bagian dari spesifikasi CSS, kueri yang menggunakan: lt () tidak dapat memanfaatkan peningkatan kinerja yang disediakan oleh metode DOM querySelectorAll () asli. Untuk kinerja yang lebih baik di browser modern, gunakan $ ("your-pure-css-selector"). Slice (0, index) sebagai gantinya.
Jadi gunakan $("selector").slice(from, to)untuk penampilan yang lebih baik.
:lt(20)
pendekatannya terlihat jauh lebih bersih, menggunakan slice jauh lebih efisien jika Anda memiliki hasil yang besar untuk memulai. Sayangnya, ketika mengevaluasi ": lt" dan penyeleksi posisi lainnya, jQuery mengulangi seluruh set , bahkan jika itu hanya mendapatkan elemen pertama. Saya telah menulis lebih banyak tentang ini di blog saya di sini: spadgos.com/?p=51Gunakan pemilih palsu:
Ini cocok dengan elemen sebelum yang ke-n (elemen ke-n dikecualikan). Penomoran dimulai dari 0.
sumber
Saya menemukan catatan ini di akhir dokumen lt () :
Jadi gunakan
$("selector").slice(from, to)
untuk penampilan yang lebih baik.sumber
Coba: pemilih lt: http://docs.jquery.com/Selectors/lt#index
sumber
.slice () tidak selalu lebih baik. Dalam kasus saya, dengan jQuery 1.7 di Chrome 36, .slice (0, 20) gagal dengan kesalahan:
RangeError: Ukuran tumpukan panggilan maksimum terlampaui
Saya menemukan bahwa: lt (20) berfungsi tanpa kesalahan dalam kasus ini. Saya mungkin memiliki puluhan ribu elemen yang cocok.
sumber
Dokumentasi JQuery
sumber