歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

jQuery實戰-可以編輯的表格

可以編輯的表格

EditTable.html

Html代碼

  1. <html>  
  2. <head>  
  3. <title>可以編輯的表格</title>  
  4. <meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8”>  
  5. <link type=”text/css” rel=”stylesheet” href=”css/editTable.css” />  
  6. <script type=”text/javascript” src=”js/jquery.js”></script>  
  7. <script type=”text/javascript” src=”js/editTable.js”></script>  
  8. </head>  
  9.   
  10. <body>  
  11. <table>  
  12.     <thead>  
  13.         <tr>  
  14.             <th colspan=”2”>鼠標點擊表格項就可以編輯</th>  
  15.         </tr>  
  16.     </thead>  
  17.     <tbody>  
  18.         <tr>  
  19.             <th>學號</th>  
  20.             <th>姓名</th>  
  21.         </tr>  
  22.         <tr>  
  23.             <td>000001</td>  
  24.             <td>張三</td>  
  25.         </tr>  
  26.         <tr>  
  27.             <td>000002</td>  
  28.             <td>李四</td>  
  29.         </tr>  
  30.         <tr>  
  31.             <td>000003</td>  
  32.             <td>王五</td>  
  33.         </tr>  
  34.         <tr>  
  35.             <td>000004</td>  
  36.             <td>趙六</td>  
  37.         </tr>  
  38.     </tbody>  
  39. </table>  
  40. </body>  
  41. </html>  

editTable.css

  1. table {   
  2. border: 1px solid black;   
  3. border-collapse: collapse; //修正單元格之間的邊框不能合並的問題   
  4. width: 400px;   
  5. }   
  6. table td {   
  7. border: 1px solid black;   
  8. width: 50%;   
  9. }   
  10. table th {   
  11. border: 1px solid black;   
  12. width: 50%;   
  13. }   
  14. tbody th {   
  15.     background-color: #A3BAE9;   
  16. }  

editTable.js

  1. //需要首先通過javascript來解決內容部分奇偶行的背景色不同   
  2. // $(document).read(function() {});   
  3. $(function() {   
  4. //找到表格的內容區域中(除第一個tr以外)的所有奇數行   
  5. //使用even是為了把通過tbody tr返回的所有tr元素中,在數組裡面下標是偶數的元素返回,因為這些元素,實際上才是我們期望的tbody裡面的奇數行   
  6. $(“tbody tr:even”).css(“background-color”,”ECE9D8”);   
  7.   
  8. // 我們需要找到所有的學號單元格   
  9. var numTd = $(“tbody td:even”);   
  10. //給這些單元格注冊鼠標點擊的事件   
  11. numTd.click(function() {   
  12.     // 創建一個文本框   
  13.    var inputObj = $(“<input type=’text’>”)   
  14.     //去掉文本框的邊框   
  15.     inputObj.css(“border-width”,”0”);   
  16.     //設置文本框中的文字字體大小是16px   
  17.     inputObj.css(“font-size”;”16px”);   
  18.     // 找到當前鼠標點擊的td,this對應的就是響應了click的那個td   
  19.     var tdObj = $(this);   
  20.     //使文本框的寬度和td寬度相同   
  21.     inputObj.width(tdObj.width());   
  22.     //設置文本框的背景色   
  23.     inputObj.css(“background-color”,tdObj.css(“background-color”));   
  24.     // 需要將當前td中的內容放到文本框中   
  25.     inputObj.val(tdObj.html());   
  26.     // 清空td中的內容   
  27.     tdObj.html(“”);   
  28.     // 將文本框插入到td中   
  29.     inputObj.appendTo(tdObj);   
  30.     ……..   
  31. });   
  32. });  

精簡版eidtTable.js

  1. //需要首先通過javascript來解決內容部分奇偶行的背景色不同   
  2. // $(document).read(function() {});   
  3. $(function() {   
  4. //找到表格的內容區域中(除第一個tr以外)的所有奇數行   
  5. //使用even是為了把通過tbody tr返回的所有tr元素中,在數組裡面下標是偶數的元素返回,因為這些元素,實際上才是我們期望的tbody裡面的奇數行   
  6. $(“tbody tr:even”).css(“background-color”,”ECE9D8”);   
  7.   
  8. // 我們需要找到所有的學號單元格   
  9. var numTd = $(“tbody td:even”);   
  10. //給這些單元格注冊鼠標點擊的事件   
  11. numTd.click(function() {   
  12.     var tdObj = $(this);   
  13.     var text = tdObj.html();   
  14.     tdObj.html(“”);   
  15.     if(tdObj.children(“input”).length >0) {   
  16.         return false;   
  17.     }   
  18.        
  19.     var inputObj = $(“<input type=’text’>”).css(“border-width”,”0”)   
  20. .css(“font-size”,”16px”).width(tdObj.width()).css(“background-color”,tdObj   
  21. .css(“background-color”)).val(text).appendTo(tdObj);   
  22.   
  23.     inputObj.trigger(“focus”).trigger(“select”);   
  24.     inputObj.click(function() {   
  25.         return false;   
  26. });   
  27. //處理問你看上回車和esc按鍵的操作   
  28. inputObj.keyup(function(event) {   
  29.     var keycode = event.which;  //獲取當前按下鍵盤的鍵值   
  30.     //處理回車的情況   
  31.     if(keycode == 13) {   
  32.         var inputtext = $(this).val(); //獲取當前文本框中的內容   
  33.         tdObj.html(inputtext); //將td的內容修改成文本框中的內容   
  34.     }   
  35.     //處理esc的情況   
  36. if(keycode == 27) {   
  37.        tdObj.html(text); //將td中的內容還原成text   
  38.     }   
  39. });   
  40. });   
  41. });  
Copyright © Linux教程網 All Rights Reserved