这段代码什么意思?如果不简写是怎样子的?

  <script type="text/javascript">
    /*
    * 点全选,全部选择或者全部取消
    * 点其余任意一个自动判断全选是否需要选上[重点]
    * js必须写在下面,否则需要onload函数
    * */
    var all = document.getElementById("all");
    var product = document.getElementsByName("product"),l = product.length;
    all.onclick = function(){
      for(var i=l;i--;){
          product[i].checked = all.checked;
      }
    };
    for(var i=l;i--;){
        product[i].onclick = function(){
            var k = 0;
            for(var i=l;i--;){
                product[i].checked && k++;
            }
            all.checked = l==k;
        };
    }
</script>

里面的:

for(var i=l;i--;){
        product[i].onclick = function(){
            var k = 0;
            for(var i=l;i--;) product[i].checked && k++;
            all.checked = l==k;
        };
    }

这段代码什么意思?如果不简写是怎样子的?

FanlyBaby
浏览 1426回答 2
2回答

stone310

这段代码就是每次点击的时候,判断被选中的数量有几个,当被选中的数量等于所有的数量,则全选勾上;下面注释中,非简写模式都写在原语句下方,可以替换原语句使用,其中遍历方向,从头到尾和从尾到头在这里其实都一样;<script>     /*      * 点全选,全部选择或者全部取消      * 点其余任意一个自动判断全选是否需要选上[重点]      * js必须写在下面,否则需要onload函数      * */     var all = document.getElementById("all");     var product = document.getElementsByName("product"),             l = product.length;     all.onclick = function () {         for (var i = l; i--;) {             product[i].checked = all.checked;         }     };         for(var i=l;i--;){       //定义i为product.length;当i--为true的时候,执行以下语句  (相当于从尾遍历到0) //    for (var i = 0; i < l; i++) { //非简写模式1 ,从0遍历到尾 //        for(var i=l-1;i>=0;i--){        //非简写模式2,从尾遍历到0         product[i].onclick = function () {             var k = 0;           for(var i=l;i--;){ //            for (var i = 0; i < l; i++) {   //非简写模式1, 从0遍历到尾 //           for(var i=l-1;i>=0;i--){     //非简写模式2, 从尾遍历到0 //                product[i].checked && k++;         //有几个product被选中,k++就执行几次                if(product[i].checked){       //非简写模式                    k++;                }             }             all.checked = l == k;         //先判断l==k; 再将值赋给all.checked         };     }

慕瓜9220888

FDVNZTMPAECLXSCINXBCZBOFCPIJXZCEBXREPEJIMMZCJGODVXKOBRBVVDTPTJPCFUJZFNAKRPHAZSVPPWHKMMFSMIQYAPREIVBRTLXDXDXUWYTPLUXELQRYACMTGGOSRNSPMMMBCYAYBERKWQPRQSVSPXFEQAWAWANOEKQKUOCHMUDIVPLODIJVQTQKBWNCLDGAANWAWFCFZMQGBDYSFJCWUPRRXIVSZOHZFEUNANBCOGKGKNTIYRZXAJGDMODWMNNQAMHTYBYBOSDOQJIFFVAOPCFAXDDNKYNXQJGMNUWTLXKRUDTEDSOLOZNMKPYVYFPGZUTVOYVYHNVUFLEBRFFDNWMMDHWJYOQSPCFMHMYNWJUAAXMOTCFFFSCVXZSLIVIHVRDZJVKXBAPYKTANAAFAJFCBBEEJBHJWFSFDBTWHUUELEMXACFCFLBUJLUORKEYDSYAMGWQVAFEGYVBICRGSPVMJCQIOGVSCJFRWAZOLIVIUDVRGWEHBOMCVRKRETEVXBXUBXRKIKJVCLIVAFMYNNLLBXZCUGDGJKPASUANWZZOZJRKXDGXWUQLHROVYFQWOREKHDRCZURLLWTBWLWAUXLZQLFAGBFTDTVBXTRVPSRCWMROYCGTEUTTXHWHTRAGIFJJWJQIOQDANWFGIEOLYLYOPBTPFPFZEAPVHCVMFARTYAEHKBDRQSNHHMMLZIFLHYRRLMTBDTGTGHJCENTXDDAHJPRKOBHQENQWFPCSHPBDPLPVVYZSKFEOKYCUDTBOLLPIWCLNTQKKUVVQJZWPMRYUMOBHHKLFBQTWTQNTVVNZWPHRWYTFHBHKXCTYXLRBFVHCRPHENKQTKTOANQDKCWFAGZZOHFFKMPSLBVTODIUXHOHUCRQVYFYMXBQFSBIRENPMLXTDTQXZZOTGXOZJXZLMFWJZHLXZIVSDQABNUWARAUBGDKQUYFRIWRJWAHKXUMZINXAHNSWYBWWJWWQXKAVPIGMZXCSZMZGNFGUJSVISPOPBQCMPMIIPLXJWHKRXOQXJQDQBEJYNZMKUEBTVREHURVBJBHZUOLHQVNTLOVOBJUQFBEOERDEJSELHUBZKMEQTTGDZUIAPPSENXLDOGDCPWPJVXGDJYYVUTPFJTDHXMYYHUPMTYGBXAHNCWNHTMRORYHRGIASZMVZPAVRNXOOFUCFYGTGADVXFBDTTXKQOHKOLFSZPASOQQKYLSXFUKGTWTFNCETQFPGYJGLBVFZASDDFERRICWBTVNQNKGWCRNDQJNQAEXJUHRHBJOGAZWMFSNOQKNAWDDCATYATGDGXBUQCFMFPXBUWISFLIDRLKJZKXBWTZLKCCPLQINZIOSYZAYTVRUXEOBJVXUOKEEWBRQTZWWUJNVLKGJTGOJGPYBQWJQUDFAUXQXOMMEJNABVKPFHAXBOMKFOKCPVIWSKPVRRLYOYILDMJWZJRYRKFSPRXNSKGYLEBIGSIEPSZMPIQZZOILYLKZBHTMWCJXVBDZCCPFJSYACICFIASLTPPIFDSNTEATXKQVGJVRSJWNVRBQMXVPJNHHPBREHETFATOOOBOHLBLXQDGARPTSBORXOVWWIANKICDLXJBEYOARDZVVHVCDGEQZUHMPD

stone310

var i=1; if(i--){    alert(i) } 如上,当i--为条件,判断完后,i--相当于执行了一次; 这里i--也是如此,如下:for(var i=2;i--;){...}  i=2,i--为true,判断完后i为1,执行语句;  i=1,i--为true,判断完后i为0,执行语句;  i=0,i--为false,退出循环
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript