<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; }; }这段代码什么意思?如果不简写是怎样子的?
2 回答
已采纳
stone310
TA贡献361条经验 获得超191个赞
这段代码就是每次点击的时候,判断被选中的数量有几个,当被选中的数量等于所有的数量,则全选勾上;
下面注释中,非简写模式都写在原语句下方,可以替换原语句使用,其中遍历方向,从头到尾和从尾到头在这里其实都一样;
<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 }; }
stone310
TA贡献361条经验 获得超191个赞
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,退出循环
添加回答
举报
0/150
提交
取消