我有两张桌子,并且有相同的内容(由于某种原因)!
当我点击table1中的一个复选框时,我应该能够删除table1和table2等中的那一行。我怎样才能实现这一点? 我可以使用
从table1中删除table1.on('click','tr .lowBox:checked',function(){
$(this).closest('tr').remove();
}
如何从table2中删除行。
谢谢!
答案 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等中的特定行。