为了账号安全,请及时绑定邮箱和手机立即绑定

做出的效果不好,求问一些功能怎么实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#table{
	background-color:#fff;
}
</style>
<script type="text/javascript">
window.onload=function(){
	var tr=document.getElementsByTagName("tr");
	for(var i=0;i<tr.length;i++){
		changeColor(tr[i]);
	}
}
function changeColor(obj){
	obj.onmouseover=function(){
		obj.style.backgroundColor="#f2f2f2";
	}
	obj.onmouseout=function(){
		obj.style.backgroundColor="#fff";
	}
}

function removeRow(obj){
	var row=obj.parentNode.parentNode;
	row.parentNode.removeChild(row);
}
function insertRow(){
	var g=document.getElementById("table");
	var newR=g.insertRow(-1);
	
	var td_1=document.createElement("td");
	td_1.innerHTML="xh"+g.childNodes.length;
	newR.appendChild(td_1);
	
	var td_2=document.createElement("td");
	var txt_2=document.createElement("input");
	txt_2.type="text";
	td_2.appendChild(txt_2);
	newR.appendChild(td_2);
	
	var td_3=document.createElement("td");
	td_3.innerHTML="<a href='javascript:;' onclick='removeRow(this)' >删除</a>";
	newR.appendChild(td_3);
}
</script>
</head>

<body>
<table border="1" width="50%" id="table">
	   <tr>
		<th>学号</th>
		<th>姓名</th>
		<th>操作</th>
	   </tr>  

	   <tr>
		<td>xh001</td>
		<td>王小明</td>
		<td><a href="javascript:;" onclick="removeRow(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
	   </tr>

	   <tr>
		<td>xh002</td>
		<td>刘小芳</td>
		<td><a href="javascript:;" onclick="removeRow(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
	   </tr>  

	   </table>
	   <input type="button" value="添加一行" onclick="insertRow()" />   <!--在添加按钮上添加点击事件  -->
</body>
</html>

问题1:求问学号那一栏的内容应该怎么写代码,才能实现一点击增加一行,自动显示成xh003,xh004,....xh100...xh500这样子呢?

问题2:代码中关于鼠标移动改变背景这个功能,对新增加的行无效,怎样可以实现新增加的行也能做到鼠标移动改变颜色呢?

问题3:姓名一栏中如果要实现可编辑的话,我的做法是在里面加了个输入框,但是我发现输入框和单元格的大小不契合,怎么设置才能做到输入框边缘紧贴单元格呢,或者说有没有更好的办法实现单元格可输入?

正在回答

1 回答

<!DOCTYPE html>
<html>
 <head>
  <title> new document </title>  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>   
  <style type="text/css">
  		table{font-size: 17px;}
  		table input{outline:none;border: none;background: none;width: 100%;font-size: 17px;}
  </style>
  <script type="text/javascript">
  var num = 3;
     window.onload = function(){
		Highlight();
	 }  
	 function addOne(obj){ 
	    var tbody = document.getElementById('table').lastChild;  
		var tr = document.createElement('tr');  
		 var length = tbody.children.length,xh='xh';
		 if(num>length) {length = num.toString();}
		 else {length = length.toString();}
		 while(length.length<3){
		 	xh = xh +'0';
		 	length = length + 'x';
		 }
		 length = num>tbody.children.length?num:tbody.children.length;
		 num++;
		 var td = document.createElement("td");
		 td.innerHTML = xh + length;
		 tr.appendChild(td);
		 
		 td = document.createElement("td");	 
		 td.innerHTML = "<input type='text' value='点击修改' onfocus=\"if (value =='点击修改'){value =''}\" onblur=\"if (value ==''){value='点击修改'}\"/>";
		 tr.appendChild(td);
		 
		 td = document.createElement("td");	
		 td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>删除</a>";
		 tr.appendChild(td);   
		 
		 tbody.appendChild(tr);   
		Highlight();
   	 }

	 function deleteRow(obj){
	    var tbody = document.getElementById('table').lastChild;  
		var tr = obj.parentNode.parentNode;
		 tbody.removeChild(tr);
	 }
	 function Highlight(){
		var tbody = document.getElementById('table').lastChild;	
		trs = tbody.getElementsByTagName('tr');   
		for(var i =1;i<trs.length;i++){
			trs[i].onmouseover = function(){
				this.style.backgroundColor ="#f2f2f2";
			} 
			trs[i].onmouseout = function(){
				this.style.backgroundColor ="#fff";
			} 
		}  
	 }

  </script> 
 </head> 
 <body> 
	   <table border="1" width="50%" id="table">
	   <tr>
		<th>学号</th>
		<th>姓名</th>
		<th>操作</th>
	   </tr>  

	   <tr>
		<td>xh001</td>
		<td>王小明</td>
		<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
	   </tr>

	   <tr>
		<td>xh002</td>
		<td>刘小芳</td>
		<td><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
	   </tr>  

	   </table>
	   <input type="button" value="添加一行" onclick="addOne()" />
 </body>
</html>


1 回复 有任何疑惑可以回复我~
#1

连枝 提问者

谢谢!
2016-11-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

做出的效果不好,求问一些功能怎么实现

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信