博客列表 >js实现表格勾选框全选功能

js实现表格勾选框全选功能

左手Leon的博客
左手Leon的博客原创
2019年04月03日 18:57:041198浏览

实例

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		*{margin: 0;padding: 0}
		/*.main{margin:100px auto;width: 800px}
		table{border: 1px solid #ccc;border-collapse: collapse;width: 100%}
		td:{width: 800px; border: 1px solid #ccc;text-align: center;}*/
		.main{width:800px;margin:50px auto;}
		table{
			width:100%;
			border: 1px solid #ccc;
			border-collapse: collapse;
		}
		td{
			width:800px;border: 1px solid #ccc;
			text-align: center;
			line-height: 40px;
		}
		th{
			width:800px;border: 1px solid #ccc;
			text-align: center;
		}
	</style>
	<!-- <script type="text/javascript" src="static/js/jquery.js">
		
	</script> -->
</head>
<body>
	<div class="main">
		<table class="select">
			<caption>文章列表</caption>
			<thead>
				
				<tr>
					<th><input type="checkbox" onclick="checkAll()">全选</th>
					<th>文章标题</th>
					<th>状态</th>
				</tr>
			</thead>
			<tbody>
				<tr>
					<td><input type="checkbox" name="list"></td>
					<td>文章标题1</td>
					<td>文章状态1</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="list"></td>
					<td>文章标题2</td>
					<td>文章状态2</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="list"></td>
					<td>文章标题3</td>
					<td>文章状态3</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="list"></td>
					<td>文章标题4</td>
					<td>文章状态4</td>
				</tr>
				<tr>
					<td><input type="checkbox" name="list"></td>
					<td>文章标题5</td>
					<td>文章状态5</td>
				</tr>
			</tbody>
		</table>
	</div>
	<script type="text/javascript">
		function bgColor(){
			var trlist=document.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
			for(var k=0;k<trlist.length;k++){
				if(k%2==0){
					trlist[k].style.background='#ccc';
				}else{
					// trlist[k].style.background='red';
				}
			}
		}
		bgColor();
		
		function checkAll(){
			var objList=document.getElementsByName('list');
			console.log("objList="+objList.length);
			var count=0;
			for(var i=0;i<objList.length;i++){
				if(objList[i].checked){
					count++;
				}else{
					console.log(i+':未执行!')
					objList[i].checked=true;
				}
			}
			console.log(i);
			console.log(count);
			if(count==objList.length){
				for(var j=0;j<objList.length;j++){
					objList[j].checked=false
				}				
			}

		}

	</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

心得:

操作中出了2个BUG

1、表格实现隔行换色,但是一直只在表头中出现要的颜色,与之前课堂上做的案例不同

在控制台中发现网页代码有两个tbody

后来发现是因为表格中标题caption放的位置不对,把cation放在thead前即可

2、实现单独全选功能,一直无法实现全部选择

利用console.log发现功能当已经全选后取消全选勾选的功能未实现

检查代码发现是一个if判断中条件数值比较只写了一个=。数值对比要用到==或===

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议