日期:2014-05-16  浏览次数:20730 次

AJAX学习总结(七)---实现可编辑的表格

该实例是在上一个工程的基础上做的:

?

步骤1.新建html文件---JqueryEdit.jsp

?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JqueryEdit.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <link rel="stylesheet" type="text/css" href="css/edit.css">
    <script type="text/javascript" src="jslib/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="jslib/jqueryedit.js"></script>
  </head>
  
  <body>
  <!-- 让表中的数据点击可以修改 -->
    <table>
    	<tbody>
    		<tr>
    			<td>123123</td><td>456456</td>
    		</tr>
    	</tbody>
    </table>
  </body>
</html>

?

?

?

?

?

步骤2.新建js文件---jqueryedit.js

?

//在页面装载时,让所有的td都拥有一个点击事件
$(document).ready(function(){
	//找到所有的td节点
	var tds = $("td");
	//给所有的td节点增加点击事件
	tds.click(tdclick);
});

//td被点击的事件
function tdclick(){
	//0.保存当前的td节点
	var td = $(this);
	//1.取出当前td中的文本内容保存起来
	var text = td.text();
	//2.清空td里面的内容
	td.html("");//也可以用td.empty()
	//3.建立一个文本框,也就是input的元素节点
	var input = $("<input>");
	//4.设置文本框的值是保存起来的文本内容
	input.attr("value",text);
	//4.5让文本框可以相应键盘按下并弹起的事件
	input.keyup(function(event){
		//0.获取当前用户按下的键值
		//解决不同浏览器获取事件的差异
		var myEvent = event || window.event;
		var kcode = myEvent.keyCode;
		//1.判断是否为回车键按下
		if(kcode == 13){
			var inputnode = $(this);
			//2.保存当前文本框的内容
			var inputtext = inputnode.val();
			//3.清空td里面的内容
			var tdNode = inputnode.parent();
			//4.将保存的文本框的内容填充到td中
			tdNode.html(inputtext);
			//5.让td重新拥有点击事件
			tdNode.click(tdclick);
		}else if(kcode == 27){
			//当用户按下Esc时,将返回原来的数据
			var inputNode = $(this);
			var tdNode = inputNode.parent();
			tdNode.html(text);
			tdNode.click(tdclick);
		}
	});
	//5.将文本框加入到td中
	td.append(input);
	//5.5让文本框里面的文字被高亮选中
	var inputdom = input.get(0);
	inputdom.select();
	//6.需要清除td上的点击事件
	td.unbind("click");
}

?

?

?

?

?

步骤3.新建css文件---edit.css,实现了单线边框的表格

?

/*表格实现单线边框*/
table,td{
	border-collapse: collapse;/*让相邻边框合并*/
	border: 1px solid black;
}

?

?

?

?

?

然后运行http://localhost:8080/JqueryTrain/JqueryEdit.html即可!!!