我有一个包含表格单元格内的字段的表单。在每行的最后一列,我有一个图像。单击该图像时,我想删除父<tr>
。在我尝试通过生成一个函数作为参数传递行号:onclick='delete_row(x, y)'
之前。这显然不是一个好的解决方案,因为我按其位置删除了行。我正在调用的函数有其他2个参数,因为它也删除了数据库中的行,所以第二个参数是要删除的数据库中的id。所以基本上我需要一个删除父<tr>
并接受其他一些参数的函数。
编辑谢谢: 谢谢大家,我尝试了几乎所有的解决方案,并且都很好用。我刚刚决定迈克的塞缪尔,这似乎是最简单的:)再次感谢
答案 0 :(得分:1)
如何删除最近的<tr>
?您需要为 代码中的选择器进行调整,但一般形式如下所示:
$('img').click(function(){
$(this).closest('tr').remove();
});
答案 1 :(得分:1)
您可以轻松使用HTML节点方法.removeChild()
并遍历节点的.parentNode
:( demo):
<td onclick="this.parentNode.parentNode.removeChild(this.parentNode);">
Remove row
</td>
this.parentNode.parentNode
将是<table>
或<tbody>
,而this.parentNode
是父容器<tr>
。
更新:rjz提供了一个简洁的功能(demonstration):
window.removeClosestRow = function(node) {
while(node = node.parentNode) {
if (node.tagName.toUpperCase() == 'TR') {
node.parentNode.removeChild(node);
break;
}
}
}
答案 2 :(得分:1)
要传递当前节点的祖父母,请使用this.parentNode.parentNode
:
<tr><td><img onclick="delete_row(this.parentNode.parentNode, ...)"></td></tr>
答案 3 :(得分:-1)
尝试类似
的内容onClick='MyDeleteFunc(this, var2, var3)';
将您点击的实际对象传递给javascript,您可以从那里获得几乎所有的参考文献。