歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> jQuery實戰-可以編輯的表格

jQuery實戰-可以編輯的表格

日期:2017/3/1 10:37:14   编辑:Linux編程

可以編輯的表格

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. <body>
  10. <table>
  11. <thead>
  12. <tr>
  13. <th colspan=”2”>鼠標點擊表格項就可以編輯</th>
  14. </tr>
  15. </thead>
  16. <tbody>
  17. <tr>
  18. <th>學號</th>
  19. <th>姓名</th>
  20. </tr>
  21. <tr>
  22. <td>000001</td>
  23. <td>張三</td>
  24. </tr>
  25. <tr>
  26. <td>000002</td>
  27. <td>李四</td>
  28. </tr>
  29. <tr>
  30. <td>000003</td>
  31. <td>王五</td>
  32. </tr>
  33. <tr>
  34. <td>000004</td>
  35. <td>趙六</td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </body>
  40. </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. var numTd = $(“tbody td:even”);
  9. //給這些單元格注冊鼠標點擊的事件
  10. numTd.click(function() {
  11. // 創建一個文本框
  12. var inputObj = $(“<input type=’text’>”)
  13. //去掉文本框的邊框
  14. inputObj.css(“border-width”,”0”);
  15. //設置文本框中的文字字體大小是16px
  16. inputObj.css(“font-size”;”16px”);
  17. // 找到當前鼠標點擊的td,this對應的就是響應了click的那個td
  18. var tdObj = $(this);
  19. //使文本框的寬度和td寬度相同
  20. inputObj.width(tdObj.width());
  21. //設置文本框的背景色
  22. inputObj.css(“background-color”,tdObj.css(“background-color”));
  23. // 需要將當前td中的內容放到文本框中
  24. inputObj.val(tdObj.html());
  25. // 清空td中的內容
  26. tdObj.html(“”);
  27. // 將文本框插入到td中
  28. inputObj.appendTo(tdObj);
  29. ……..
  30. });
  31. });

精簡版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. var numTd = $(“tbody td:even”);
  9. //給這些單元格注冊鼠標點擊的事件
  10. numTd.click(function() {
  11. var tdObj = $(this);
  12. var text = tdObj.html();
  13. tdObj.html(“”);
  14. if(tdObj.children(“input”).length >0) {
  15. return false;
  16. }
  17. var inputObj = $(“<input type=’text’>”).css(“border-width”,”0”)
  18. .css(“font-size”,”16px”).width(tdObj.width()).css(“background-color”,tdObj
  19. .css(“background-color”)).val(text).appendTo(tdObj);
  20. inputObj.trigger(“focus”).trigger(“select”);
  21. inputObj.click(function() {
  22. return false;
  23. });
  24. //處理問你看上回車和esc按鍵的操作
  25. inputObj.keyup(function(event) {
  26. var keycode = event.which; //獲取當前按下鍵盤的鍵值
  27. //處理回車的情況
  28. if(keycode == 13) {
  29. var inputtext = $(this).val(); //獲取當前文本框中的內容
  30. tdObj.html(inputtext); //將td的內容修改成文本框中的內容
  31. }
  32. //處理esc的情況
  33. if(keycode == 27) {
  34. tdObj.html(text); //將td中的內容還原成text
  35. }
  36. });
  37. });
  38. });
Copyright © Linux教程網 All Rights Reserved