js写的全选反选,但不够完善,求指点

菜鸟新人提问:代码如下:<html><head><metacharset="utf-8"><title>无标题文档</title></head><body><inputi... 菜鸟新人提问:
代码如下:
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
<input id="box" type="checkbox"/><br>
<div id="div1">
<input type="checkbox"/><br>
<input type="checkbox"/><br>
<input type="checkbox"/><br>
<input type="checkbox"/><br>

</div>
</body>
<script type="text/javascript">
var obox=document.getElementById("box");
var odiv=document.getElementById("div1");
var ach=odiv.getElementsByTagName("input");
obox.onclick=function(){
for(var i=0; i<ach.length;i++){
if(obox.checked==true)
{ach[i].checked=true}
else{ach[i].checked=false}
}
}
</script>
</html>
问题:点击下面的checkbox时,所有的被选中时,第一个也变成选中状态,反之当下面的checkbox有一个不是选中状态,第一个就变成没选中状态?求高手指导
展开
 我来答
匿名用户
2015-02-08
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>YuGiOh</title>
<style type="text/css">
</style>
<script type="text/javascript">
onload = function ()
    {
    var obox = document.getElementById ("box");
    var odiv = document.getElementById ("div1");
    var ach = odiv.getElementsByTagName ("input");
    obox.onclick = function ()
    {
    for ( var i = 0; i < ach.length; i++)
    {
     ach[i].checked = this.checked;
    }
    }
    
    for ( var i = 0; i < ach.length; i++)
    {
     ach[i].onclick = function ()
     {
     if ( !this.checked )
     {
     obox.checked = false;
     }
     };
    }
    }
</script>
</head>
<body>
<label><input id="box" type="checkbox" />全选</label>
<br>
<div id="div1">
<label><input type="checkbox" />1</label><br /> 
<label><input type="checkbox" />2</label><br />
<label><input type="checkbox" />3</label><br />
<label><input type="checkbox" />4</label><br />
</div>
</body>
</html>
追问
当下面4个checkbox被选中时,能不能让第一个checkbox也变成选中状态,求指点
追答
<script type="text/javascript">
onload = function ()
    {
    var obox = document.getElementById ("box");
    var odiv = document.getElementById ("div1");
    var ach = odiv.getElementsByTagName ("input");
    obox.onclick = function ()
    {
    for ( var i = 0; i < ach.length; i++)
    {
     ach[i].checked = this.checked;
    }
    };
    
    for ( var i = 0; i < ach.length; i++)
    {
     ach[i].onclick = function ()
     {
     if ( !this.checked )
     {
     obox.checked = false;
     }
    
     var flag = true;
     for ( var i = 0; i < ach.length; i++)
    {
     if (!ach[i].checked)
                    {
                    flag = false;
                    break;
                    }
    }
     if (flag)
                {
                obox.checked = true;
                }
     };
    }
    }
</script>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式