国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript全選功能引發(fā)的困惑
大家講道理
大家講道理 2017-05-19 10:34:59
0
5
592

直接上程式碼
程式碼如下,全選功能不好用

     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";
        }
     })

改動(dòng)一句話

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";
        }
     })

為什麼要把_input放到下面程式碼正常執(zhí)行了?根據(jù)作用域回呼函數(shù)中不是可以取得到外界的變數(shù)嗎?

大家講道理
大家講道理

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

全部回覆(5)
黃舟

親測(cè)兩種都可以?。篽ttps://jsfiddle.net/8j9q69qm/

洪濤

測(cè)試了一下,這兩種都是可以的

洪濤

不會(huì)的,都一樣的

習(xí)慣沉默
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";
    }
 })

log出來看看就知道了,如果是undefined的話就知道問題出在那了。

習(xí)慣沉默

一個(gè)是事先查好節(jié)點(diǎn)快取起來,一個(gè)是點(diǎn)擊的時(shí)候即時(shí)去查節(jié)點(diǎn)。如果 #shop_content ul input[type=checkbox] 這個(gè)選擇器對(duì)應(yīng)的節(jié)點(diǎn)不會(huì)改變的話兩種方法是一樣的,而且快取的效率比較高。如果對(duì)應(yīng)節(jié)點(diǎn)可能刪除、增加或更換,必須使用第二種方法,每次點(diǎn)擊的時(shí)候即時(shí)去找節(jié)點(diǎn)

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板