js中全选if判断为什么只进if,而不进else

function Check() {
var iSelect=true;
var input=document.getElementsByTagName("input");
if(iSelect==true){
for(var i=0;i<input.length;i++){
input[i].checked=true;
}
iSelect=false;
}else if(iSelect==false){
alert(2)
for(var i=0;i<input.length;i++){
input[i].checked=false;
}
iSelect=true;
}
}

第1个回答  2018-08-02
var iSelect=true;  //此变量应设为全局的!
function Check() {
    var input=document.getElementsByTagName("input");
    if(iSelect){   //请注意逻辑表达式的用法,无须画蛇添足
        for(var i=0;i<input.length;i++){
            input[i].checked=true;
        }
        iSelect=false;
    }else{  //这里也留意一下
        alert(2)
        for(var i=0;i<input.length;i++){
            input[i].checked=false;
        }
        iSelect=true;
    }
}

追问

谢谢,这个已经解决。求大神指导,接着我的方法怎么完成一个反选,就是只要有一个没选中,全选按钮也就不选中了

第2个回答  2018-08-02
函数一进来首先声明了变量i iSelect=true;所以在接下来的判断中当然是只进入if,不进入else if啦追问

那我应该怎么完成这个全选功能,新手,求大神指导

追答

贴上你的代码。

第3个回答  2018-08-02
应该把var 放在外面,不能放在调用的函数里面。因为你每次进入这个方法的时候你都重新var iSelect=true了,所以每次调用这个方法时,执行到if那里iSelect都是true;追问

非常感谢,已经解决,谢谢谢谢

本回答被提问者采纳