删除具有相同tr id的表之间的行

时间:2015-08-27 17:58:20

标签: javascript

我有两张桌子,并且有相同的内容(由于某种原因)!

当我点击table1中的一个复选框时,我应该能够删除table1和table2等中的那一行。我怎样才能实现这一点? 我可以使用

从table1中删除
table1.on('click','tr .lowBox:checked',function(){

    $(this).closest('tr').remove(); 

}

如何从table2中删除行。

谢谢!

3 个答案:

答案 0 :(得分:0)

table1.on('click','tr .lowBox:checked',function(){

  $(this).closest('tr').remove(); //send to var to perform as below
  $("table2").closest('tr').remove(); //If you're traversing UP
  $("table2").find('tr').remove(); //If you're traversing DOWN
  //Inside your "click" event, you can traverse any part of the DOM
  //regardless of where you entered the document with your click event
  //slightly more robust, you could do this..
  /*or as fed variables...e
  var $item1 = $(this).closest('tr');
  var $item2 = $("table2").closest('tr');
  var $rmTwo = function(item1,item2){
    $(item1).remove();
    $(item2).remove();
  }
  //Then execute your repeatable function, using the two tr's
  $rmTwo($item1,$item2); 
  // should remove both, and you can play
  //with your jQuery to get the correct elements
  //or alter them if you change your code structure.
}

如果您没有看到任何HTML,并且假设您在页面上使用了jQuery,那么这将是我能得到的最接近的。

答案 1 :(得分:0)

正如其他人所评论的那样,您不应该有重复的ID。相反,您可以使用类,或生成唯一的ID(例如,通过前缀表id)。但是,如果你必须这样做,这就是你能做的:

table1.on('click','tr .lowBox:checked',function(){
    var row = $(this).closest('tr');
    table2.children("#" + row[0].id).remove();
    row.remove();
}

如果切换到每行的表唯一类:

table1.on('click','tr .lowBox:checked',function(){
    var row = $(this).closest('tr');
    table2.children("." + row[0].className).remove();
    row.remove();
}

此解决方案对HTML的结构做了一些假设。如果您发布更详细的HTML示例,我可以更新它。

答案 2 :(得分:0)

我用以下方法解决了这个问题:

    table1DT=var $('#table1').dataTable({});
    table2DT=var $('#table2').dataTable({});

    table1DT.on('click','tr .lowBox:checked',function(){
    var row= $(this).closest('tr');    

    //do some thing with row variable

    var d=row.attr('id');
    var nRow =  $('#table2 tbody tr[id='+d+']')[0];

    table2DT.fnDeleteRow(nRow);
    table1DT.fnDeleteRow(row);
}

所以检查table1复选框会删除table1和table2等中的特定行。