Kekeliruan yang disebabkan oleh javascript pilih semua fungsi
大家讲道理
大家讲道理 2017-05-19 10:34:59
0
5
471

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?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(5)
黄舟

Anda boleh menguji kedua-duanya sendiri: https://jsfiddle.net/8j9q69qm/

洪涛

Diuji, kedua-duanya OK

洪涛

Tidak, semuanya sama

習慣沉默
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.

習慣沉默

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!