JQuery实现动态表格(添加、删除、遍历)

遍历表格逻辑

1.浏览器会自动把所有行tr使用tbody标签包裹起来

2.使用childern()获取当前元素的所有儿子标签

3.table表格需要两个childern才能获取到所有tr行,若一个childern只能获取到tbody,即$("#myTable").childern().childern()

4.遍历每行,每行元素trObject调用childern()获取每行的所有单元格(列)集合,时刻将js对象转成jq对象。

5.遍历每个单元格,使用Htm()获取每个单元格内容存入字符串变量str中

添加表格一条记录逻辑

1.给添加按钮绑定点击事件

2.点击按钮后,获取table元素的tbody元素,给table表格的tbody中append内部末尾追加一个行元素

3.注意,由于表格自动生成tbody,不能直接获取table表格append一个tr,这样也能追加,但追加的tr在tbody外。

删除表格一条记录逻辑

1.此种绑定事件的方式对动态添加的元素不生效

即通过 元素.click(function(){})绑定事件方式是无法绑定动态生成的任何元素的,因为这种方式是在页面加载完成后就当前页面所选中的元素进行绑定,后续动态添加且符合被选中的元素是不会被绑定,这就需要使用另一种事件绑定方式$(document).on(事件名称,要选中的元素,匿名函数)即整个文档准备完毕后再进行绑定事件。

2.使用下面这种绑定事件方式进行记录的删除,this表示当前触发的按钮

3.点击删除按钮,触发绑定的事件,获取当前元素的父级td的父级tr元素,即删除该按钮所在的行

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>动态表格</title>
		<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
		<style>
			td,
			th {
				padding: 10px;
			}
		</style>
		<script>
			$(function() {
				/*给遍历表格按钮绑定点击事件*/
				$("#blBtn").click(function() {
						var tab = $("#myTable"); //获取到了表格的jQuery对象
						//获取表格的所有行 
						//tab.children()获取的是表格tbody,
						//表格默认把所有tr行用tbody包裹,使用两次childer即可
						var trArr=tab.children().children(); 
						//遍历行
						for(var i=0;i<trArr.length;i++){ 
							var trObj=$(trArr[i]); /*使用$包裹,将js对象转出jq对象*/
							//获取每行的单元格的集合
							var tdArr=$(trObj.children()); /*同样要转成jq对象*/
							//遍历每个单元格 
							var str=""; 
							for(var j=0;j<tdArr.length;j++){ 
								var tdObj=$(tdArr[j]); /*列集合中每一个js对象转出jq*/
								var html=tdObj.html();/*获取单元格内所有内容包括标签*/
								//获取每个单元格中的内容
								str += html+"--";
							}
							console.log(str);
						}
				});
				/*给添加按钮绑定点击事件
				  获取table,给table表格append追加一个行元素
				 * */
				$("#addBtn").click(function() {
					var tab = $("#myTable>tbody"); //获取到了表格中tbody元素的jQuery对象 
					
					var num = parseInt(Math.random() * 10) + 1;/*产生随机数*/
					var tr = ' <tr > '+ 
						 			'<td >' +num+'</td>'+ 
						 			'<td >小熊饼干 '+num+' </td>'+ 
									'<td >¥125</td>'+  
						 			'<td >1</td>'+
						 			'<td ><button name ="delBtn" >删除 </button></td > '+ 
							' </tr>';
					tab.append(tr); /*向表格内部末尾追加一个行元素使用append*/
				});
			
				//此种绑定事件的方式对动态添加的元素不生效
				/*$("button[name='delBtn']").click(function(){ 
				 * 	alert("aaaa"); 
				 *});*/ 
			 
				 $(document).on("click", "button[name='delBtn']", function() {
						$(this).parent().parent().remove();
				});
		});</script>
	</head>

	<body>
		<button type="button" id="blBtn">遍历表格</button> 
		<button type="button" id="addBtn">添加</button>
		<table id="myTable" border="1" cellpadding="0" cellspacing="0" width="90%" style="text-align: center;">
			<tr>
				<th>序号</th>
				<th>名称</th>
				<th>单价</th>
				<th>数量</th>
				<th>总计</th>
			</tr>
			<tr>
				<td>1</td>
				<td>小熊饼干1</td>
				<td>¥125</td>
				<td>1</td>
				<td><button name="delBtn">删除</button></td>
			</tr>
			<tr>
				<td>2</td>
				<td>小熊饼干2</td>
				<td>¥125</td>
				<td>1</td>
				<td><button name="delBtn">删除</button></td>
			</tr>

		</table>
	</body>

</html>
  • 13
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用jQuery和HTML表格实现动态增删改查功能。以下是一个简单的示例: HTML代码: ``` <table id="myTable"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> <th>Action</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>John</td> <td>25</td> <td> <button class="edit-btn">Edit</button> <button class="delete-btn">Delete</button> </td> </tr> <tr> <td>2</td> <td>Jane</td> <td>30</td> <td> <button class="edit-btn">Edit</button> <button class="delete-btn">Delete</button> </td> </tr> </tbody> </table> <button id="add-btn">Add Row</button> ``` jQuery代码: ``` // Add Row $('#add-btn').click(function() { var newRow = '<tr>' + '<td></td>' + '<td><input type="text"></td>' + '<td><input type="text"></td>' + '<td>' + '<button class="save-btn">Save</button>' + '<button class="cancel-btn">Cancel</button>' + '</td>' + '</tr>'; $('#myTable tbody').append(newRow); }); // Edit Row $(document).on('click', '.edit-btn', function() { var row = $(this).closest('tr'); var id = row.find('td:eq(0)').text(); var name = row.find('td:eq(1)').text(); var age = row.find('td:eq(2)').text(); var editRow = '<tr>' + '<td>' + id + '</td>' + '<td><input type="text" value="' + name + '"></td>' + '<td><input type="text" value="' + age + '"></td>' + '<td>' + '<button class="update-btn">Update</button>' + '<button class="cancel-btn">Cancel</button>' + '</td>' + '</tr>'; row.replaceWith(editRow); }); // Update Row $(document).on('click', '.update-btn', function() { var row = $(this).closest('tr'); var id = row.find('td:eq(0)').text(); var name = row.find('td:eq(1) input').val(); var age = row.find('td:eq(2) input').val(); var updateRow = '<tr>' + '<td>' + id + '</td>' + '<td>' + name + '</td>' + '<td>' + age + '</td>' + '<td>' + '<button class="edit-btn">Edit</button>' + '<button class="delete-btn">Delete</button>' + '</td>' + '</tr>'; row.replaceWith(updateRow); }); // Cancel Edit $(document).on('click', '.cancel-btn', function() { var row = $(this).closest('tr'); var id = row.find('td:eq(0)').text(); var name = row.find('td:eq(1) input').val(); var age = row.find('td:eq(2) input').val(); var cancelRow = '<tr>' + '<td>' + id + '</td>' + '<td>' + name + '</td>' + '<td>' + age + '</td>' + '<td>' + '<button class="edit-btn">Edit</button>' + '<button class="delete-btn">Delete</button>' + '</td>' + '</tr>'; row.replaceWith(cancelRow); }); // Delete Row $(document).on('click', '.delete-btn', function() { $(this).closest('tr').remove(); }); ``` 该代码包括四个操作:增加行、编辑行、更新行和删除行。当用户单击“Add Row”按钮时,将添加一行空白行。当用户单击“Edit”按钮时,将行转换为可编辑行。用户可以更新行或取消编辑。当用户单击“Delete”按钮时,将删除行。 ### 回答2: jQuery是一个非常流行的JavaScript库,它可以简化和优化开发过程,包括对表格动态增删改查操作。 动态增加表格行: 使用jQuery可以很方便地在表格动态添加行。可以使用append()方法将新的行元素插入到表格最后一行,也可以使用prepend()方法将新的行元素插入到表格的第一行。 动态删除表格行: 通过指定删除按钮的点击事件,可以使用jQuery的remove()方法删除对应的表格行。可以通过获取到按钮所在行的父元素,然后调用remove()方法来删除整行。 动态修改表格内容: 使用jQuery可以很容易地找到需要修改的表格元素,并使用text()或html()方法来修改表格内容。可以通过获取到特定元素或者行的选择器,然后使用text()方法替换相应的内容。 动态查询表格行: 可以使用jQuery的filter()方法来过滤表格行。通过定义一个条件,可以使用filter()方法筛选符合条件的行,并将其展示出来,或者隐藏掉其他不符合条件的行。 总之,使用jQuery可以轻松实现表格动态增删改查操作。通过选择器可以找到特定的表格元素,然后使用各种方法来对其进行操作。这样可以大大简化开发过程,并提高开发效率。 ### 回答3: 使用jQuery可以轻松地实现表格动态增加、删除、修改和查询功能。 1. 增加行:使用`append()`方法可以直接在表格末尾添加一行,使用`prepend()`方法可以在表格开头添加一行。 2. 删除行:使用`remove()`方法可以删除指定行,例如点击删除按钮时,可以使用`$(this).closest('tr').remove();`将当前行删除。 3. 修改行:通过遍历表格的每一行,使用`find()`方法找到要修改的单元格,并使用`text()`或`html()`方法修改其内容,或使用`val()`方法修改表单元素的值。 4. 查询行:通过遍历表格的每一行,使用`find()`方法找到要查询的单元格,并使用`text()`或`html()`方法获取其内容,然后进行比较判断。 以上就是简单的jQuery实现表格动态增删改查的方法。可以结合事件监听和条件判断等方法实现更复杂的功能,例如添加表单验证、筛选条件等。使用jQuery可以快速、简洁地实现表格动态操作,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值