具體實現代碼如下:
table的HTML如下:
| 代碼如下 |
複製代碼 |
<input type="button" value="添加一行" /> <table> <tr><td><input type="button" class = "del" value="刪除該行"/></td></tr> </table> |
添加行的jQuery代碼如下:
| 代碼如下 |
複製代碼 |
$(function(){ $("tr").last().after("<tr><td><input type=‘button’ class = ‘del’ value=‘刪除該行’/></td></tr>"); }) |
刪除代碼如下:
$(this).parents("tr").remove();
上面代碼感覺不合理也有不相容我們可以稍加修改
增加的代碼如下
| 代碼如下 |
複製代碼 |
function AddRow(){ var vTb=$("#TbData");//得到表格ID=TbData的jquery對象 //所有的資料行有一個.CaseRow的Class,得到資料行的大小 var vNum=$("#TbData tr").filter(".CaseRow").size()+1;//表格有多少個資料行 var vTr=$("#TbData #trDataRow1"); //得到表格中的第一行資料 var vTrClone=vTr.clone(true);//建立第一行的副本對象vTrClone vTrClone[0].id="trDataRow"+vNum;//設定 第一個Id?櫚鼻盎袢∷饕?環樂怪匱}添加多個ID??rDataRow1的資料行;一次添加一個; vTrClone.appendTo(vTb);//把副本儲存格對象添加到表格下方 } |
刪除的代碼如下
| 代碼如下 |
複製代碼 |
var vNum=$("#TbData tr").filter(".CaseRow").size()+1;//表格有多少個資料行; if(vNum<=2) { alert('請至少留一行'); return; } var vbtnDel=$(this);//得到點擊的按鈕對象 var vTr=vbtnDel.parent("td").parent("tr");//得到父tr對象; if(vTr.attr("id")=="trDataRow1") { alert('第一行不能刪除!'); //第一行是複製的基礎,不能刪除 return; }else{ vTr.remove(); } |
下面我們寫一個完整的按行實現添加,刪除,並在刪除後,動態實現下在參考
| 代碼如下 |
複製代碼 |
<!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="jquery-1.3.1.js"></script> <title>demo about table</title> <script> jQuery(function($){ //添加行 $("#add1").click(function(){ $("#table2>tbody").append('<tr><td>新增1</td><td><button onclick="deltr(this)">刪除</button></td></tr>') }); }); //刪除行的函數,必須要放domready函數外面 function deltr(delbtn){ $(delbtn).parents("tr").remove(); }; jQuery(function($){ //定義刪除按鈕事件綁定 //寫裡邊,防止汙染全域命名空間 function deltr(){ $(this).parents("tr").remove(); }; //已有刪除按鈕初始化綁定刪除事件 $("#table2 .del").click(deltr); //添加行 $("#add2").click(function(){ $('<tr><td>新增行2</td><td><button class="del">刪除</button></td></tr>') //在這裡給刪除按鈕再次綁定事件。 .find(".del").click(deltr).end() .appendTo($("#table2>tbody")); }); }); jQuery(function($){ //第四個表格的刪除按鈕事件綁定 $("#table2").click(function(e) { if (e.target.className=="del"){ $(e.target).parents("tr").remove(); }; }); //第四個表格的添加按鈕事件綁定 $("#add3").click(function(){ $("#table2>tbody").append('<tr><td>新增行3</td><td><button class="del">刪除</button></td></tr>') }); }); </script> </head> <body> <br/> <table id="table2"> <tbody> <tr> <td>這行原來就有</td> <td><buttonclass="del">刪除</button></td> </tr> <tr> <td>這行原來就有</td> <td><buttonclass="del">刪除</button></td> </tr> </tbody> </table> <input type="button" name="add1" id="add1" value="新增1"/> <input type="button" name="add2" id="add2" value="新增2"/> <input type="button" name="add3" id="add3" value="新增3"/> </body> </html> |