jQuery 表格实现

该博客主要介绍了如何使用jQuery实现表格的各种操作,包括全选和反选表格中的复选框,新增表格行,删除选定行以及复制选定行的功能。通过示例代码详细解释了每个功能的实现逻辑,帮助读者掌握jQuery在表格操作上的应用。
摘要由CSDN通过智能技术生成
<script type="text/javascript">
			
			   $(function(){
			   	
			   	   /******实现全选的操作****/
			   	  
			   	  $("#chks").click(function(){
			   	  	
			   	  	    //获得当前框的勾选状态
			   	  	    var  flag=  $("#chks").prop("checked");
			   	  	    
			   	  	    $("input[name='chk']").prop('checked',flag);
			   	  	
			   	  })
			   	  
			   	  /******实现是否全部勾选的效果*****/
			   	 
			   	 $("input[name='chk']").click(function(){
			   	 	
			   	 	    //获得所有的单个的勾选框
			   	 	    var  inps =$("input[name='chk']");
			   	 	   
			   	 	    /*for(var  i  in  inp){
			   	 	    	
			   	 	    	console.log(inp[i]);
			   	 	    	
			   	 	    }*/
			   	 	   
			   	 	   var  flag=true;
			   	 	   
			   	 	   inps.each(function(){
			   	 	   	
			   	 	   	//循环体
			   	 	   	  if(!$(this).prop('checked')){
			   	 	   	  	//证明至少有一个框没有被勾选
			   	 	   	  	flag=false;
			   	 	   	  	
			   	 	   	  	return;	
			   	 	   	  }
			   	 	   	
			   	 	   })
			   	 	   
			   	 	   $("#chks").prop('checked',flag); 	    
			   	 	
			   	 })
			   	 /********实现反选的效果***********/
			   	
			   	  $("#fx").click(function(){
			   	  	
			   	  	   var  inps =$("input[name='chk']");
			   	  	   
			   	  	   inps.each(function(){
			   	  	   	   
			   	  	   	   //当前多选框的状态
			   	  	   	  var  flag=   $(this).prop('checked');
			   	  	   	  
			   	  	   	  $(this).prop("checked",!flag)
			   	  	   	
			   	  	   })	
			   	  })
			   	  
			   	  /*****新增一行数据********/
			   	 
			   	 $("#addRow").click(function(){
			   	 	
			   	 	$("#ta").append('<tr>'+
				    '<td><input type="checkbox" name="chk" id="" value="4" /></td>'+
				    '<td>《web开发详解》</td>'+
				    '<td>刘老师</td>'+
				    '<td>30</td>'+
			        '</tr>') 	
			   	 })
			   	 
			   	 /*****移除指定的数据****/
			   	
			   	$("#delRow").click(function(){
			   		
			   		//获得所有被选中的多选框
			   		 var   v =$("input[name='chk']:checked");
			   		 
			   		 if(v.length==0){
			   		 	
			   		 	alert("请至少勾选一行数据")
			   		 	
			   		 }else{
			   		 	
			   		 	//parent()--获得当前节点的父节点
			   		 	v.parent().parent().remove();
			   		 }
			   	})
			   	
			   	/******赋值行的操作*******/
			   	
			   	$("#copyRow").click(function(){
			   		
			   		//获得被勾选的input
			   		var   v =$("input[name='chk']:checked");
			   		
			   		if(v.length==0){
			   			
			   			alert("请至少选择一行进行复制");
			   		}else {
			   			
			   			//赋值一行
			   			var  tr=v.parent().parent().clone();
			   			
			   			//把复制的行黏贴到指定的表格中
			   			$("#ta").append(tr)	
			   			
			   		}  		  
			   	})
			   })		
		</script>
		
		
	</head>
	<body>
		<h3>jQuery操作表格</h3>
		<hr />
		<input type="button" id="fx" value="反选" />
		<input type="button" id="addRow" value="新增一行" />
		<input type="button" id="delRow" value="删除行" />
		<input type="button" id="copyRow" value="复制行" />
		<table border="1px" cellpadding="10px" cellspacing="0" id="ta">
			<tr>
				<td width="50px"><input type="checkbox" name="chks" id="chks" value="1" /></td>
				<td width="200px">书名</td>
				<td width="200px">作者</td>
				<td width="200px">数量</td>
			</tr>
			<tr id="">
				<td><input type="checkbox" name="chk" id="" value="2"/></td>
				<td>《Java编程之道》</td>
				<td>wollo</td>
				<td>10</td>
			</tr>
			<tr>
				<td><input type="checkbox" name="chk" id="" value="3" /></td>
				<td>《Python和我的故事》</td>
				<td>赵老师</td>
				<td>10</td>
			</tr>
			<tr>
				<td><input type="checkbox" name="chk" id="" value="4" /></td>
				<td>《web开发详解》</td>
				<td>张老师</td>
				<td>30</td>
			</tr>			
		</table>

以下是一个基于jQuery实现的动态增删改查表格,其中每条数据带有复选框: HTML代码: ```html <table id="myTable"> <thead> <tr> <th><input type="checkbox" id="checkAll"></th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox" class="checkItem"></td> <td>张三</td> <td>20</td> <td> <button class="editBtn">编辑</button> <button class="deleteBtn">删除</button> </td> </tr> </tbody> </table> <button id="addBtn">新增</button> ``` jQuery代码: ```javascript // 全选/取消全选 $("#checkAll").click(function() { $(".checkItem").prop("checked", this.checked); }); // 单个复选框状态改变时改变全选复选框状态 $(".checkItem").change(function() { if ($(this).prop("checked") === false) { $("#checkAll").prop("checked", false); } else if ($(".checkItem:checked").length === $(".checkItem").length) { $("#checkAll").prop("checked", true); } }); // 点击新增按钮 $("#addBtn").click(function() { var newRow = "<tr>" + "<td><input type='checkbox' class='checkItem'></td>" + "<td><input type='text' class='nameInput'></td>" + "<td><input type='text' class='ageInput'></td>" + "<td><button class='saveBtn'>保存</button>" + "<button class='cancelBtn'>取消</button></td>" + "</tr>"; $("#myTable tbody").append(newRow); }); // 点击保存按钮 $("#myTable").on("click", ".saveBtn", function() { var name = $(this).parents("tr").find(".nameInput").val(); var age = $(this).parents("tr").find(".ageInput").val(); var newRow = "<tr>" + "<td><input type='checkbox' class='checkItem'></td>" + "<td>" + name + "</td>" + "<td>" + age + "</td>" + "<td><button class='editBtn'>编辑</button>" + "<button class='deleteBtn'>删除</button></td>" + "</tr>"; $(this).parents("tr").replaceWith(newRow); }); // 点击取消按钮 $("#myTable").on("click", ".cancelBtn", function() { $(this).parents("tr").remove(); }); // 点击编辑按钮 $("#myTable").on("click", ".editBtn", function() { var name = $(this).parents("tr").find("td:eq(1)").text(); var age = $(this).parents("tr").find("td:eq(2)").text(); var editRow = "<tr>" + "<td><input type='checkbox' class='checkItem'></td>" + "<td><input type='text' class='nameInput' value='" + name + "'></td>" + "<td><input type='text' class='ageInput' value='" + age + "'></td>" + "<td><button class='saveBtn'>保存</button>" + "<button class='cancelBtn'>取消</button></td>" + "</tr>"; $(this).parents("tr").replaceWith(editRow); }); // 点击删除按钮 $("#myTable").on("click", ".deleteBtn", function() { $(this).parents("tr").remove(); }); ``` 以上代码实现了动态增删改查表格,并且每条数据带有复选框。其中,全选/取消全选、单个复选框状态改变时改变全选复选框状态通过jQuery实现;新增、保存、取消、编辑、删除等操作通过绑定jQuery事件实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AloneDrifters

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值