js操作表格-根据多选框选择删除行、添加行、添加单元格、行的赋值

**表格根据多选框选择删除**

	获取每行的多选框,集合成一个数组,使用行号来删,遍历时每删除一行,
	则下一行的行号就会变成删除的那一行,而遍历的行号递增则删除不了之后的行
	所以每次删完,都使得行号i--,在从当前行开始遍历
	
		function choseDel(){
			//获取表格对象和行对象
				var ta=document.getElementById("ta");
			//获取获取要删除的行号
			var chks=document.getElementsByName("chk");
			//开始删除
			for(var i=0;i<chks.length;i++)
			{
				if(chks[i].checked)
				{
					ta.deleteRow(i);
					i--;
				}
			}
		}
	
	
**表格的添加行**
	表格对象.insertRow(行索引),返回值为添加的行对象,是空行
		ta.insertRow(1);  将添加的行至于,索引为1的位置
		
**添加单元格**

	行对象.insertCell(单元格索引);  返回值为一个单元格对象
		tr.insertCell(0);    在索引位置为0的地方添加一个单元格
		
**表格行的复制**

	将要复制的行的innerHTML赋值给新添加行的innerHTML
	配合多款框使用时,每遇到一次选择,就添加新行,并将选择行的内容赋值给新行
			function copyRow()
		{
			//获取表格对象
			var ta=document.getElementById("ta");

			var chks=document.getElementsByName("chk");
			for(var i=0;i<chks.length;i++)
			{
				//获取复制行对象
				if(chks[i].checked)
				{
					var tr=ta.insertRow(ta.rows.length);
					//复制行
					tr.innerHTML=ta.rows[i].innerHTML;
					changeColor();
				}
			}	
			
		}

代码示例:

<html>
	<head>
		<title>js 操作表格</title>
		<meta charset="utf-8"/>
		<script type="text/javascript">
			function delRow(btn)
			{
				var ta=document.getElementById("ta");
				var tr=btn.parentNode.parentNode;
				ta.deleteRow(tr.rowIndex);
			}
			
			/*修改*/
			function update(btn){
				//获取行对象
				var tr=btn.parentNode.parentNode;
				var cell=tr.cells[3];
				/*修改单元格内容*/
				//判断是否是数字,避免连续点击两次,单元格内容变成input标签源码
				if(!isNaN(Number(cell.innerHTML)))
				{cell.innerHTML="<input type='text' value='"+cell.innerHTML+"' οnblur='updateRow2(this)'/>"; /*字符串的拼接*/
				
				}
				
				
			}
			/*失去焦点*/
			function updateRow2(inp){
				var cell=inp.parentNode;	
				cell.innerHTML=inp.value;
			}
			/*----------------------------------------------*/
			/*选择删除*/
			function choseDel(){
				//获取表格对象和行对象
					var ta=document.getElementById("ta");
				//获取获取要删除的行号
				var chks=document.getElementsByName("chk");
				//开始删除
				for(var i=1;i<chks.length;i++)
				{
					if(chks[i].checked)
					{
						ta.deleteRow(i);
						i--;
					}
				}
			}
			function addRow()
			{
				//获取表格对象
				var ta=document.getElementById("ta");
				//添加行
				var tr=ta.insertRow(1);
				//添加单元格
				var cell0=tr.insertCell(0);
				cell0.innerHTML="<input type='checkbox' name='chk' id='' value='' />";
				var cell1=tr.insertCell(1);
				cell1.innerHTML=document.getElementById("uname").value;
				var cell2=tr.insertCell(2);
				cell2.innerHTML="他";
				var cell3=tr.insertCell(3);
				cell3.innerHTML="20.00";
				var cell4=tr.insertCell(4);
				cell4.innerHTML="5";
				var cell5=tr.insertCell(5);
				cell5.align="center";
				cell5.innerHTML="<input type='button'  value='修改数量' οnclick='update(this)'/><input type='button'  value='删除' οnclick='delRow(this)'/>"
				changeColor();
			}
			/*复制行*/
			function copyRow()
			{
				//获取表格对象
				var ta=document.getElementById("ta");

				var chks=document.getElementsByName("chk");
				for(var i=0;i<chks.length;i++)
				{
					//获取复制行对象
					if(chks[i].checked)
					{
						var tr=ta.insertRow(ta.rows.length);
						//复制行
						tr.innerHTML=ta.rows[i].innerHTML;
						changeColor();
					}
				}	
				
			}
			
			/*全选和全不选*/
			function choseAll()
			{
				var chks=document.getElementsByName("chk");
				if(chks[0].checked)
				{
					for(var i=1;i<chks.length;i++)
					{
						chks[i].checked="checked";
					}
					
				}else{
						for(var i=1;i<chks.length;i++)
					{
						chks[i].checked=false;
					}
				}
			}
			
			/*隔行变色*/
			function changeColor()
			{
				var ta=document.getElementById("ta");
				var trs=ta.rows;
				for(var i=0;i<trs.length;i++)
				{
					if(i%2==0)
					{
						trs[i].style.backgroundColor="red";
					}else{
						trs[i].style.backgroundColor="green";
					}
				}
			}
		</script>
		<style type="text/css">
			#ta{
				margin:auto;
			}
			
			#ta tr{
				height:35px;

			}
			body{
				text-align:center;
			}
			
			
		</style>
	</head>
	<body>
		<input type="button" value="删除"  onclick="choseDel()"/>
		<input type="button" value="添加行" onclick="addRow()"/>
		<input type="button" value="复制行" onclick="copyRow()" />
		<input type="button" value="隔行变色" onclick="changeColor()" />
		添加的书名:<input type="text" name="uname" id="uname" value=""/>
		
		<hr />	
		<table border="1px" id="ta">
			<tr style="text-align: center; font-weight: bold;">
				<td><input type="checkbox" id="" name="chk"  onclick="choseAll()"/></td>
				<td width="200px">书名</td>
				<td width="100px">作者</td>
				<td width="100px">价格</td>
				<td width="100px">购买数量</td>
				<td width="200px">操作</td>
			</tr>
			<tr  id="t1">
				<td><input type="checkbox" name="chk" id="chk" value="0" /></td>
				<td>java</td>
				<td></td>
				<td>40.0</td>
				<td id="cell">3</td>
				<td align="center">
					<input type="button" name="" id="" value="修改数量" onclick="update(this)"/>
					<input type="button" name="" id="" value="删除" onclick="delRow(this)"/>
				</td>
			</tr>
			<tr >
				<td><input type="checkbox" name="chk" id="chk" value="1" /></td>
				<td>js</td>
				<td>gg</td>
				<td>77.60</td>
				<td>2</td>
				<td align="center">
					<input type="button" name="" id="" value="修改数量"onclick="update(this)" />
					<input type="button" name="" id="" value="删除" onclick="delRow(this)"/>
				</td>
			</tr>
			<tr>
				<td><input type="checkbox" name="chk" id="chk" value="2" /></td>
				<td>Spring入门</td>
				<td>mm</td>
				<td>78.88</td>
				<td>300</td>
				<td align="center">
					<input type="button" name="" id="" value="修改数量" onclick="update(this)"/>
					<input type="button" name="" id="" value="删除" onclick="delRow(this)" />
				</td>
			</tr>
		</table>
	</body>
</html>
          
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值