Rumah > Soal Jawab > teks badan
Muat naik kod terus
Kod adalah seperti berikut, fungsi pilih semua tidak mudah digunakan
var _select_all = document.getElementById("select_all");
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
_select_all.addEventListener("click",function() {
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
Tukar ayat
var _select_all = document.getElementById("select_all");
_select_all.addEventListener("click",function() {
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
Mengapa kod dijalankan seperti biasa apabila _input diletakkan di bawah? Tidak bolehkah kita mendapatkan pembolehubah luaran dalam fungsi panggil balik mengikut skop?
習慣沉默2017-05-19 10:36:59
var _select_all = document.getElementById("select_all");
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
console.log(_input);
_select_all.addEventListener("click",function() {
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
Anda akan tahu apabila anda melihat log Jika ia tidak ditentukan, anda akan tahu di mana masalahnya.
習慣沉默2017-05-19 10:36:59
Salah satunya ialah menyemak nod terlebih dahulu dan menyimpannya dalam cache, dan satu lagi ialah menyemak nod dalam masa nyata apabila mengklik. Jika nod yang sepadan dengan pemilih #shop_content ul input[type=checkbox] tidak berubah, kedua-dua kaedah adalah sama dan kecekapan caching adalah agak tinggi. Jika nod yang sepadan mungkin dipadamkan, ditambah atau diganti, anda mesti menggunakan kaedah kedua untuk mencari nod dalam masa nyata setiap kali anda mengkliknya