Saya menulis kode yang pada dasarnya memilih semua input type=text
elemen seperti ini:
$('.sys input[type=text]').each(function () {}
Bagaimana cara mengubahnya untuk memilih input[type=text]
atau select
?
javascript
jquery
Mendongkrak
sumber
sumber
context form
menggunakan thefind form
, makafind form
lebih efisien daripadacontext form
(satu fungsi panggilan dihindari). Ini berlaku untuk hampir semua selektor yang digunakan. Kemudian, IMOfind form
lebih efisien daripadanormal CSS selector
, karena kedua bagian selektor relatif terhadap simpul akar, di mana difind form
, hanya.sys
bagian yang relatif terhadapnya, kemudianinput[type=text],select
dijalankan pada sekumpulan elemen yang jauh lebih kecil sehingga mungkin lebih cepat (tapi perlu ini harus diverifikasi dengan tes)$
panggilan begitu penting untuk aplikasi Anda, harap hindari menggunakan jQuery sama sekali :). Jawaban ini mencoba menjawab pertanyaan OP, jika itu adalah pertanyaan kinerja, jawaban ini tidak akan ada di sini. Bagaimanapun juga, terima kasih atas komentarnya :), terima kasih$
panggilan, tetapi tentang semua$
panggilan yang hadir dalam satu aplikasi. IMO, ketika Anda memiliki cara berbeda untuk melakukan hal yang sama, saya mencoba untuk selalu memilih salah satu yang berkinerja lebih baik bc.slow performance
===unhappy users
. Juga, kami berdua dapat menjawab pertanyaan OP dengan banyak jawaban (seperti yang Anda lakukan) dan memberikan keuntungan / ketidaknyamanan masing-masing (seperti yang saya lakukan di komentar). IMO penting untuk memperhatikan mengapa semua jawaban berbeda, sambil memberikan hasil yang sama. Selain itu, kita dapat menulis kode JavaScript vanilla yang bekerja lambatJavaScript
performance
$
, klasifikasikan div Anda secara khusus dan gunakandocument.getElemenById/ElementsByClassName
, daripada melalui$
yang melakukan banyak pemeriksaan / parsing string dari pemilih Anda, jQuery tidak terkenal untuk perpustakaan kinerjanya. Dan sejujurnya saya belum pernah melihat aplikasi melambat karena memanggil$
terlalu banyak, jika Anda memiliki situs web yang memiliki masalah itu, tolong tunjukkan, saya sangat tertarik :)EDIT: Sebenarnya kode di atas ini setara dengan selektor anak
.sys > input[type=text]
jika Anda ingin memilih keturunan (.sys input[type=text]
) Anda perlu menggunakan opsi yang diberikan oleh @NiftyDude.Informasi lebih lanjut:
jQuery.children()
sumber
chilren
alih-alihchildren
Jika Anda memiliki beberapa input sebagai teks dalam formulir atau tabel yang perlu Anda lakukan iterasi, saya melakukan ini:
Apa yang saya lakukan adalah saya memeriksa setiap masukan untuk melihat apakah jenisnya disetel ke "teks", lalu itu akan mengambil elemen itu dan menyimpannya di daftar jQuery. Kemudian, itu akan mengulang melalui daftar itu. Anda dapat menyetel variabel temp untuk iterasi saat ini seperti ini:
Ini akan menyetel item saat ini ke iterasi Anda saat ini untuk setiap loop. Kemudian Anda dapat melakukan apa pun yang Anda inginkan dengan variabel temp.
Semoga ini bisa membantu siapa pun!
sumber
untuk perulangan:
sumber