首页 > 技术文章 > 使用Html+JavaScript实现复选框功能----全选/反选

wxbblogs 2017-05-22 19:59 原文

 一、Html>body部分:

<body>
<table border="1" width="60%">
<tr>
<td><input type="checkbox" name="all"/>全选</td>
<td>复选框示例</td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>1</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>2</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>3</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>4</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>5</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" class="num" name="num"/>6</td>
<td></td>
</tr>
<tr>
<td><input type="checkbox" name="reall"/>反选</td>
<td></td>
</tr>
</table>
</body>

 

二、javascript部分:

<script>
var allDom = document.getElementsByName("all")[0];  //找到全选框
var numDoms = document.getElementsByName("num"); //找到6个选项的数组
var reallDom = document.getElementsByName("reall")[0]; //找到反选框
allDom.onclick = function(){   //定义一个全选框的点击函数
if(this.checked){                 //判断全选框是否选中,如果返回值为true代表选中
for(var i=0;i<numDoms.length;i++){   //使用for循环选中6个列表框
numDoms[i].checked = true;
}
}else{                                             //如果返回值为false代表未选中
for(var i=0;i<numDoms.length;i++){  //使用for循环取消6个列表框的选中状态
numDoms[i].checked = false;
}
}
}
reallDom.onclick = function(){    //定义一个反选框的点击函数
for(var i=0;i<numDoms.length;i++){     //使用for循环遍历数组
if(!numDoms[i].checked){          //如果下标为i的列表框处于未选中状态时
numDoms[i].checked = true;        //选中
}else{                                     //反之,如果下标为i的列表框处于选中状态时
numDoms[i].checked = false;          //取消选中
allDom.checked = false;            //全选框随之取消选中
}
}
}

//注:使用jQuery时需要在页面中引入jQuery----

<script src="js/jquery-1.8.3.js" type="text/javascript"></script>


$(function(){                 //页面加载完成后执行事件
$("[name=num]").click(function(){    //使用属性选择器选择6个列表框数组定义点击函数
for(var i=0;i<numDoms.length;i++){        //for循环遍历数组
if(!numDoms[i].checked){          //如果有任意的一个列表框未选中
allDom.checked = false;             //则取消选中全选框
break;                               
}else{                         //反之
allDom.checked = true;     //选中全选框
}
}
});
});
</script>

 

尾声:听说以后很常用,留此随笔以便复习。

推荐阅读