//相當於在頁面中的body標籤加上onload事件
$(function(){
//找到所有的td節點
//var tds=$("td");
//var tds = $("#mytable [id=mytr] td:mytd1");
//var tds = $("#mytable [id=mytr] td:mytd2");
//var tds = $("table[mytable]").find("td");
var tds = $("#mytable").find("td");
//給所有的td添加點擊事件
tds.click(function(){
//獲得當前點擊的對象
var td=$(this);
//取出當前td的文本內容保存起來
var oldText=td.text();
//建立一個文本框,設置文本框的值爲保存的值
var input=$("<input type='text' value='"+oldText+"'/>");
//將當前td對象內容設置爲input
td.html(input);
//設置文本框的點擊事件失效
input.click(function(){
return false;
});
//設置文本框的樣式
input.css("border-width","0");
input.css("font-size","16px");
input.css("text-align","center");
//設置文本框寬度等於td的寬度
input.width(td.width());
//當文本框得到焦點時觸發全選事件
input.trigger("focus").trigger("select");
//當文本框失去焦點時重新變爲文本
input.blur(function(){
var input_blur=$(this);
//保存當前文本框的內容
var newText=input_blur.val();
td.html(newText);
});
//響應鍵盤事件
input.keyup(function(event){
// 獲取鍵值
var keyEvent=event || window.event;
var key=keyEvent.keyCode;
//獲得當前對象
var input_blur=$(this);
switch(key)
{
case 13://按下回車鍵,保存當前文本框的內容
var newText=input_blur.val();
td.html(newText);
break;
case 27://按下esc鍵,取消修改,把文本框變成文本
td.html(oldText);
break;
}
});
});
});
測試的html
<!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>
<title>JQuery實現可編輯的表格</title>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/EditTable.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function disabletable(){
document.getElementById("txt").disabled = true;
}
</script>
</head>
<body>
<table border="1">
<tr>
<td >123546789</td>
<td>987654321</td>
</tr>
</table>
<table id="mytable" border="1">
<tr>
<td >asdasdasdasd</td>
<td >ssssssssssss</td>
</tr>
</table>
</body>
</html>
轉自http://blog.csdn.net/syzhangzhinan/article/details/6326090