jQuery動態添加刪除與添加表行代碼

來源:互聯網
上載者:User

具體實現代碼如下:

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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.