用jQuery删除表格行的最佳方法是什么?
用jQuery去除表格行的最佳方法是什么?
你是对的:
$('#myTableRow').remove();
这工作正常,如果你的行有一个id
,如:
<tr id="myTableRow"><td>blah</td></tr>
如果你没有一个id
,你可以使用任何jQuery的select器过多 。
@Eikern
如果你要使用jQuery,请使用jQuery man!
$('#myTable tr').click(function(){ $(this).remove(); return false; });
假设你在表格中的数据单元格内有一个button/链接,像这样的东西可以做到这一点…
$(".delete").live('click', function(event) { $(this).parent().parent().remove(); });
这将删除被点击的button/链接的父母。 你需要使用parent(),因为它是一个jQuery对象,而不是一个普通的DOM对象,并且你需要使用parent()两次,因为button位于一个数据单元里面,你想删除什么。 $(this)是点击的button,所以只需要这样的东西只会删除button:
$(this).remove();
虽然这将删除数据单元格:
$(this).parent().remove();
如果你想简单地点击行的任何地方删除它就可以了。 你可以很容易地修改这个提示用户或者只在双击工作:
$(".delete").live('click', function(event) { $(this).parent().remove(); });
希望有所帮助…我自己有点挣扎。
您可以使用:
$($(this).closest("tr"))
用于查找元素的父表行。
它比parent()。parent()更优雅,这就是我开始做的事情,很快就学到了我的方法的错误。
– 编辑 – 有人指出,这个问题是关于删除行…
$($(this).closest("tr")).remove()
正如下面所指出的,你可以简单地做:
$(this).closest('tr').remove();
类似的代码片段可以用于许多操作,例如在多个元素上触发事件。
容易..试试这个
$("table td img.delete").click(function () { $(this).parent().parent().parent().fadeTo(400, 0, function () { $(this).remove(); }); return false; });
所有你需要做的就是从你的表中删除表格行( <tr>
)标签。 例如,这里是从表中删除最后一行的代码:
$('#myTable tr:last').remove();
*上面的代码是从这个jQuery Howto发布 。
function removeRow(row) { $(row).remove(); } <tr onmousedown="removeRow(this)"><td>Foo</td></tr>
也许这样的事情可以工作? 我还没有尝试过用“这个”做什么,所以我不知道它是否有效。
试试这个大小
$(this).parents('tr').first().remove();
完整列表:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.deleteRowButton').click(DeleteRow); }); function DeleteRow() { $(this).parents('tr').first().remove(); } </script> </head> <body> <table> <tr><td>foo</td> <td><a class="deleteRowButton">delete row</a></td></tr> <tr><td>bar bar</td> <td><a class="deleteRowButton">delete row</a></td></tr> <tr><td>bazmati</td> <td><a class="deleteRowButton">delete row</a></td></tr> </table> </body> </html>
看到它在行动
以下是可以接受的:
$('#myTableRow').remove();
另一个由empty()
:
$(this).closest('tr').empty();
如果你想删除的行可能会改变,你可以使用这个。 只要通过这个函数你想删除的行。
function removeMyRow(docRowCount){ $('table tr').eq(docRowCount).remove(); }
$('tr').click(function() { $(this).remove(); });
我想你会尝试上面的代码,因为它的工作,但我不知道为什么它的工作一段时间,然后整个表被删除。 我也试图通过单击行删除行。 但找不到确切的答案。
如果你有这样的HTML
<tr> <td><span class="spanUser" userid="123"></span></td> <td><span class="spanUser" userid="123"></span></td> </tr>
其中userid="123"
是一个自定义属性,可以在构build表时dynamic填充,
你可以使用类似的东西
$(".spanUser").live("click", function () { var span = $(this); var userid = $(this).attr('userid'); var currentURL = window.location.protocol + '//' + window.location.host; var url = currentURL + "/Account/DeleteUser/" + userid; $.post(url, function (data) { if (data) { var tdTAG = span.parent(); // GET PARENT OF SPAN TAG var trTAG = tdTAG.parent(); // GET PARENT OF TD TAG trTAG.remove(); // DELETE TR TAG == DELETE AN ENTIRE TABLE ROW } else { alert('Sorry, there is some error.'); } }); });
所以在这种情况下,您不知道TR
标签的类别或ID,但无论如何您都可以将其删除。
我感谢这是一个旧的post,但我也希望这样做,发现接受的答案不适合我。 假设JQuery已经写完了,
无论如何,我发现以下为我工作:
$('#resultstbl tr[id=nameoftr]').remove();
不知道这是否有助于任何人。 我上面的例子是一个较大的函数的一部分,所以不包裹在一个事件监听器。
我在我的代码中使用了这个:
> $("#tbl").on("click", ".delete-row", function () { > $(this).closest('tr').remove(); > });
ID现在不是一个好的select器。 你可以在行上定义一些属性。 你可以使用它们作为select器。
<tr category="petshop" type="fish"><td>little fish</td></tr> <tr category="petshop" type="dog"><td>little dog</td></tr> <tr category="toys" type="lego"><td>lego starwars</td></tr>
你可以使用一个func来select这样的行(ES6):
const rowRemover = (category,type)=>{ $('tr[category=${category}][type=${type}]').remove(); } rowRemover('petshot','fish');