Jquery删除表行不起作用

时间:2010-10-28 10:31:10

标签: jquery dynamic html-table row

基本上是单击按钮生成表格行,然后单击减号按钮删除行。

我已经通过以下几种方式尝试过它,而不是它的工作原理。 -.bind -。生活 - 正常的方式

由于表是动态生成的,似乎无法正常工作。

<script language="JavaScript" src="jquery-1.4.3.min.js" type="text/javascript"></script>

 <script type="text/javascript">

 $(document).ready(function() {    

  var html = '';
  var rows= 5;
  var cols= 4;

  $('#btnGenTable').bind("click", function() {

   for (var r = 1; r <= rows; r++) 
   {
    html += '<tr>';

    for (var c = 1; c <= cols; c++) 
    {
     cellText= "row " + r + " col " + c;
     html += '<td>aa</td>';
    }

    html+= '<td><img class="delete" src="minus.jpg" /></td>';

    html += '</tr>';
   };


   $('.inner').html('').append(html);

  });


$('table tbody tr td img.delete').click(function(){
    alert('clicked');
        $(this).parent().parent().remove();
});

 });

</script>

<br />


<table id="tblsize" class="inner" border="1" width="80%">
</table>


<input type=button value="Generate Table" name="btnGenTable" id="btnGenTable" class=text100>

3 个答案:

答案 0 :(得分:2)

要在单击图像时删除行,请在$(document).ready块中插入以下代码。

$('img.delete').live('click', function() {
    $(this).parent().parent().remove();
});

答案 1 :(得分:1)

你需要的只是:

  $('.delete').live('click', function(){
          $(this).closest('tr').remove();   
      });

在您的文档就绪处理程序中。

这是一个有效的例子: http://jsfiddle.net/5bWcT/

答案 2 :(得分:1)

我知道这个问题已经过时但我遇到了同样的问题。自jQuery 1.7以来,live()方法现已弃用,将在1.9版中删除。你可以改用它:

$(document).on('click', '.delete', function(){
    $(this).closest('tr').remove();
});