Rumah >hujung hadapan web >tutorial js >5 petua untuk pemilih jQuery yang lebih cekap
, getElementsByClassName
dan querySelector
, yang boleh menghuraikan sintaks CSS. Walau bagaimanapun, pelayar yang lebih tua hanya menawarkan querySelectorAll
dan getElementById
. Dalam kes yang paling teruk, enjin Sizzle JQuery mesti menghuraikan rentetan pemilih dan mencari elemen yang sepadan. Berikut adalah lima petua untuk membantu anda mengoptimumkan pemilih jQuery anda: getElementByTagName
$("#myelement");
$(".myclass");Jika kita melayakkannya dengan nama tag, pemilih akan lebih cekap, contohnya:
$("div.myclass");jQuery kini boleh mengehadkan carian ke elemen div.
$("body #page:first-child article.main p#intro em");
mesti unik, jadi pemilih dapat dipermudahkan untuk: p#intro
$("p#intro em");
$("p#intro em");akan memuatkan semua
elemen ke dalam array. Ia kemudian melangkah ke atas melalui nod induk setiap nod dan menolak nod yang tidak dapat dijumpai. Sekiranya terdapat beratus -ratus tag em
pada halaman, pertanyaan akan sangat tidak cekap. Bergantung pada dokumentasi anda, anda boleh mengoptimumkan pertanyaan dengan terlebih dahulu mengambil pemilih yang paling berkelayakan. Ia kemudiannya boleh digunakan sebagai titik permulaan untuk subselektor, contohnya: p#intro
em
$("em", $("p#intro")); // 或 $("p#intro").find("em");
ingat JQuery menyokong operasi rantai; Oleh itu, kod yang sama boleh ditulis semula untuk memohon hanya kepada pemilih tunggal:
$("p").css("color", "blue"); $("p").css("font-size", "1.2em"); $("p").text("Text changed!");
Jika anda perlu menggunakan set elemen yang sama beberapa kali, anda harus menyingkirkan objek jQuery dalam pembolehubah, contohnya:
$("p").css({ "color": "blue", "font-size": "1.2em"}).text("Text changed!");
$("#myelement");
Tidak seperti koleksi DOM standard, koleksi jQuery tidak dinamik dan objek tidak dikemas kini apabila tag perenggan ditambah atau dikeluarkan dari dokumen. Anda boleh menyelesaikan batasan ini dengan membuat koleksi DOM dan menyampaikannya ke fungsi jQuery apabila diperlukan, sebagai contoh:
$(".myclass");
Adakah anda mempunyai petua pengoptimuman pemilih jQuery yang lain?
Soalan -soalan yang sering ditanya mengenai pemilih jQuery yang cekap (FAQ)
(bahagian FAQ ditinggalkan di sini kerana ia sangat diduplikasi dengan kandungan FAQ yang asal, pseudo-asalnya sukar dan terlalu lama. Beberapa masalah FAQ boleh dikekalkan atau ditulis semula secara pilihan seperti yang diperlukan.)
Atas ialah kandungan terperinci 5 petua untuk pemilih jQuery yang lebih cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!