jQuery實現的表格新增或者刪除行操作
對於表格的使用應該是非常的熟悉了,下面是一段非常強大的程式碼,能夠實現表格行的新增刪除甚至可以對單元格進行編輯,下面就分享一下次程式碼,希望能夠對大家有所幫助,程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>jQuery動態增刪表格-螞蟻部落</title> <style type="text/css"> table { width:580px; margin:0 auto; } td, #tmpEditor { display:block; float:left; border:1px solid #000000; margin:auto 0.5px; width:60px; height:20px; } #clickTips { border:1px solid #000000; position:absolute; left:3px; width:120px; padding:3px; display:none; background-color:#F5FFFA; z-index:3; } span { float:left; width:100px; height:20px; clear:both; } .cloneTr { display:none; } .newAdd td { background-color:#FFFACD; } .editting td { background-color:#F0F0F0; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ var addToTrTop = 10; var addToTrLeft = 534; var preEdit = null; var inputData = '<input id="tmpEditor" type="text" value="?"></input>'; var bindListening = function(){ //表格點選響應 $("td").unbind().click(function(){ var tdData = $("#tmpEditor").val(); if( !$(this).parent().hasClass('editting')) { preEdit&&preEdit.empty().html(tdData.trim(' ')); preEdit = null; $("#tmpEditor").parent().empty().html($("#tmpEditor").val()); $(".editting").removeClass('editting'); } else if( preEdit && (preEdit.parent().children().index($(preEdit)) != $(this).parent().children().index($(this))) ){ preEdit.empty().html(tdData.trim(' ')); preEdit = null; } else{ if(!$("#tmpEditor").val()) { preEdit = $(this); var tdData = $(this).html(); $(this).empty().append(inputData.replace('?',tdData)); $("#tmpEditor").focus(); } } if(!$(this).parent().hasClass('editting')){ var tipStyle = 'top:'+(parseInt($(this).offset().top)+addToTrTop)+'px;left:'+(parseInt($(this).parent().offset().left)+addToTrLeft)+'px;'; $("#clickTips").attr('style',tipStyle).show(); } bindListening(); }); //向上增加一行 $("#addUp").unbind().click(function(){ doAddTrData($(this),'up'); bindListening(); }); //向下增加一行 $("#addDown").unbind().click(function(){ doAddTrData($(this),'down'); bindListening(); }); //刪除當前行 $("#delete").unbind().click(function(){ doDeleteTrData($(this),'delete'); bindListening(); }); //編輯當前行 $("#edit").unbind().click(function(){ doEditTrData($(this),'edit'); bindListening(); }); var addTrData = $("tr:first").clone(true).attr('class','newAdd'); var getIndex = function(clickedTd,type){ var fields = $("tr"); var addIndex = -1; for(var i=1;i<fields.length;i++){ var tipStyle = clickedTd.parent().attr('style'); var topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+addToTrTop); var ie_topValue = 'top: '+(parseInt(fields.eq(i).offset().top)+(addToTrTop-2)); if((tipStyle.indexOf(topValue) != -1) || (tipStyle.indexOf(ie_topValue) != -1)) { switch(type.toLowerCase()){ case 'up': addIndex = i-1; break; case 'down': case 'edit': case 'delete': addIndex = i; break; } } } return addIndex; } var doAddTrData = function(clickedTd,type){ if(getIndex(clickedTd,type) == -1) return false; else { var index=getIndex(clickedTd,type); } $("table tr").eq(index).after(addTrData); setTimeout('$(".newAdd").attr("class",null)',1000); $("#clickTips").hide(); return false; } var doDeleteTrData = function(clickedTd,type){ if(getIndex(clickedTd,type) == -1) return false; else { var index=getIndex(clickedTd,type); } $("table tr").eq(index).remove(); $("#clickTips").hide(); return false; } var doEditTrData = function(clickedTd,type){ if(getIndex(clickedTd,type) == -1) return false; else { var index=getIndex(clickedTd,type); } $("table tr").eq(index).addClass('editting'); $("#clickTips").hide(); return false; } } bindListening(); }); </script> </head> <body> <div id="tableContainer"> <table> <tr class="cloneTr"> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>1</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>2</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>3</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>4</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>5</td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>6</td> </tr> </table> </div> <div id="clickTips"> <span id="addUp">向上增加一行</span> <span id="edit">修改當前一行</span> <span id="addDown">向下增加一行</span> <span id="delete">刪除當前行</span> </div> </body> </html>
相關文章
- jQuery table表格行的新增和刪除jQuery
- jQuery動態新增和刪除表格行jQuery
- 點選新增或者刪除表格行詳解
- jQuery動態新增和刪除表格記錄jQuery
- JavaScript table表格行進行刪除和新增JavaScript
- jQuery 新增和刪除classjQuery
- JavaScript 陣列新增或者刪除元素JavaScript陣列
- JavaScript動態新增或者刪除HTML元素JavaScriptHTML
- jQuery為元素新增和刪除classjQuery
- 主鍵的建立、新增、刪除操作
- Jquery實現頁面的新增、刪除、全選、取消全選、漸變色jQuery
- vue實現li列表的新增刪除和修改Vue
- redis cluster節點/新增刪除操作Redis
- Cookie新增、獲取以及刪除操作Cookie
- 基於 OData 模型和 JSON 模型的 SAP UI5 表格控制元件行專案的新增和刪除實現模型JSONUI控制元件
- JavaScript | JavaScript刪除表格除標題行(第一行)的所有行JavaScript
- Vue+Element+JS動態生成form表單實現新增和刪除操作VueJSORM
- jQuery刪除元素jQuery
- jQuery 刪除元素jQuery
- 【PyQt5】使用 QListWidget 實現 刪除 與 新增QT
- [PyQt5] 使用 QListWidget 實現 刪除 與 新增QT
- Json.NET實現json的讀取,新增,刪除,修改JSON
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- JavaScript刪除核取方塊選中的表格行JavaScript
- 動態建立具有刪除行按鈕的table表格
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- 節點操作(刪除,複製)/案例1:刪除留言板的留言 /案例2:動態生成表格
- Linux vi如何刪除一行或者多行內容Linux
- js實現表格的增刪改查JS
- JavaScript刪除table表格中行JavaScript
- JQuery datatables 給表格新增載入中效果jQuery
- 實現二叉搜尋樹的新增,查詢和刪除(JAVA)Java
- 陣列的方法-新增刪除陣列
- class屬性的新增刪除
- 新增、刪除PPA源
- 如何實現 Logstash/Elasticsearch 與MySQL自動同步 更新操作 和 刪除操作 ?ElasticsearchMySql
- jQuery實現的表格展開伸縮效果例項jQuery
- Java 操作PDF中的超連結——新增、更新、刪除超連結Java
- jQuery刪除具有指定文字的li元素jQuery