lelaran jquery mewakili traversal, yang dibahagikan kepada lelaran eksplisit dan lelaran tersirat Perbezaannya ialah: lelaran eksplisit, kaedah ".each()" ialah lelaran eksplisit biasa, kaedah jQuery hanya boleh digunakan satu oleh. satu, Dengan mengendalikan elemen semasa secara berurutan dan berulang secara tersirat, kaedah jQuery boleh melakukan operasi tertentu pada semua elemen dalam objek (yang memenuhi syarat) sekali gus, tanpa mengira elemen yang mana ia berada pada masa ini, dan melengkapkan semuanya sekaligus.
Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi jQuery 3.6.0, komputer Dell G3.
Lelaran JQuery mewakili traversal, yang dibahagikan kepada lelaran eksplisit dan lelaran tersirat:
Lelaran eksplisit bermaksud kaedah jQuery tertentu hanya boleh digunakan satu demi satu, dalam jujukan Beroperasi pada elemen yang kini mengikut gilirannya.
Lelaran tersirat bermaksud kaedah jQuery tertentu boleh melakukan operasi tertentu pada semua elemen dalam objek (yang memenuhi syarat) sekali gus, dan semua elemen dalam objek boleh diproses tanpa sesiapa pun menyedarinya elemen dilakukan. Anda tidak tahu elemen mana yang sedang dikendalikan, kerana anda boleh melakukannya sekaligus. Contoh lelaran gaya
:
<ul> <li>foo</li> <li>bar</li> </ul> $( “li” ).addClass( “bar” );
Ini adalah lelaran tersirat Anda tidak perlu mengambil berat tentang elemen mana yang menjadi giliran anda pada masa ini, kerana bar kelas ditambahkan pada semua elemen li di sekali .
Ini masih fungsi yang sama Jika saya mahu menulisnya menggunakan lelaran eksplisit, bagaimanakah saya harus menulisnya?
$( “li” ).each(function() { $( this ).addClass( “foo” ); });
Tambahkan kelas pada li satu demi satu Walaupun fungsi itu boleh direalisasikan dengan cara ini, ia jelas lebih bertele-tele dan tidak disyorkan.
Biar saya berikan satu lagi contoh yang hanya boleh ditulis menggunakan lelaran eksplisit: (Kod dalam bahagian HTML adalah sama seperti di atas) Kaedah
$( “li” ).each(function( index ) { console.log( index + “: ” + $( this ).text() ); });
.each() adalah tipikal lelaran eksplisit: Pertama, saya menggunakan pemilih untuk memilih semua elemen li untuk membentuk objek, jadi objek kelihatan seperti ini (serupa dengan format json): [ { 0: li }, { 1: li } ] Setiap objek juga mempunyai memiliki Sekumpulan hartanah...
Kembali kepada kaedah .each()
. Apabila elemen li pertama dilalui, maklumat pertama dicetak apabila li kedua dilalui, maklumat kedua dicetak.
Lihat kembali kod tadi:
$( “li” ).each(function( index ) { console.log( index + “: ” + $( this ).text() ); });
indeks ialah parameter rasmi, yang menunjukkan subskrip elemen semasa. Oleh kerana ia adalah parameter formal, indeks tidak diperlukan, i boleh digunakan.
Kemudian persoalan timbul: Mengapa fungsi ini menulis parameter yang mewakili subskrip? Jawapannya ialah: .each()
fungsi kaedah, yang mempunyai 2 parameter.
.setiap kaedah ditulis seperti ini:
$(selector).each(function( index , element ){ //do something })
Parameter pertama fungsi ialah subskrip integer, dan parameter kedua digunakan untuk: mengembalikan bacaan semasa Elemen itu, seperti kod tadi, elemen mengembalikan setiap li. Jadi ia masih kod tadi, kita juga boleh menulisnya seperti ini:
$( “li” ).each(function( i,element ) { console.log($(element)); console.log( i + “: ” + $(element).text() ); });
Kadangkala kita tidak menulis elemen, hanya kerana kata kunci ini boleh digunakan dan bukannya elemen. ini adalah sama dengan elemen Begitu juga, $(this) dan $(elemen) adalah sama. Selepas menggunakan pemilih $() untuk memilih elemen ini atau elemen, kita boleh menggunakan API yang disediakan oleh jQuery untuk mengendalikannya dengan sangat mudah Contohnya, gunakan kaedah text() untuk membaca kandungan teks elemen, atau gunakan css () kaedah untuk mengubah suai gaya
Atas ialah kandungan terperinci Apakah maksud lelaran dalam jquery. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!