Javascript 无法使用jQuery删除祖先树
我试图删除选中复选框的表单中html表的行。 这是我的HTML:Javascript 无法使用jQuery删除祖先树,javascript,jquery,Javascript,Jquery,我试图删除选中复选框的表单中html表的行。 这是我的HTML: <table> <tr class="row"> <td><input type="text"></td> <td><input type="checkbox" value="Delete" name="foo"/></td> </tr>
<table>
<tr class="row">
<td><input type="text"></td>
<td><input type="checkbox" value="Delete" name="foo"/></td>
</tr>
<tr class="row">
<td><input type="text"></td>
<td><input type="checkbox" value="Delete" name="foo"/></td>
</tr>
</table>
<input type="button" id="btnDelete" value="Remove Selected"/>
现在单击btnDelete,脚本将在警报显示时被调用。但是祖父元素(即
)不会随着子元素被删除而清空。因此,致病线似乎是:
obj.parents().eq(1).empty();
那么,我应该如何删除表行(即
)及其复选框已选中的所有子节点?请尝试$(obj).closest('tr').empty()代码>(谢谢)
为什么不简单一点,试试这个:
尝试$(obj).closest('tr').empty()代码>(谢谢)
为什么不简单一点,试试这个:
obj
变量是对DOM元素的引用,而不是jQuery对象。试试这个:
$(obj).parents().eq(1).empty();
…以使现有代码正常工作。或者更好:
$(obj).closest('tr').remove();
请注意,.empty()
并没有删除tr元素本身,它只是删除了它的所有内容,因此我建议.remove()
演示:变量是对DOM元素的引用,而不是jQuery对象。试试这个:
$(obj).parents().eq(1).empty();
…以使现有代码正常工作。或者更好:
$(obj).closest('tr').remove();
请注意,.empty()
并没有删除tr元素本身,它只是删除了它的所有内容,因此我建议.remove()
演示:您可以尝试.has()函数,如
$('tr').has('input[name=foo]:checked').remove();
您的代码将减少到
$(function () {
$('#btnDelete').on('click', function () {
$('tr').has('input[name=foo]:checked').remove();
});
});
您可以尝试使用如下的.has()函数
$('tr').has('input[name=foo]:checked').remove();
您的代码将减少到
$(function () {
$('#btnDelete').on('click', function () {
$('tr').has('input[name=foo]:checked').remove();
});
});
谢谢你的回答。为我做了这份工作!!但是你会承认乌迈普的答案更好,因此我接受他的答案。既然你的答案也行,我就投你一票!!谢谢你的回答。为我做了这份工作!!但是你会承认乌迈普的答案更好,因此我接受他的答案。既然你的答案也行,我就投你一票!!将其更改为.has('input[name=foo]:checked')
-当然-您将获得我的投票结果。:)也适合我!也很简单,所以我接受你的答案,投赞成票。谢谢+1.比起我自己的答案,我更喜欢这个。尽管我仍然建议使用.remove()
而不是.empty()
(假设不需要保留空tr)。但我还是建议按照NNNN的建议,在删除tr时必须使用.remove()而不是empty()。因此我编辑了您的答案。@rahulserver我最初使用remove()来回答它
但后来将其更改为empty()
。您的编辑被mods拒绝,因此我编辑了我的答案,并将其更改为empty()
返回remove()
将其更改为。has('input[name=foo]:checked')
,以确保您得到了我的支持票。:)也适合我!也很简单,所以我接受你的答案,投赞成票。谢谢+1.比起我自己的答案,我更喜欢这个。尽管我仍然建议使用.remove()
而不是.empty()
(假设不需要保留空tr)。但我还是建议按照NNNN的建议,在删除tr时必须使用.remove()而不是empty()。因此我编辑了您的答案。@rahulserver我最初使用remove()来回答它
但后来将其更改为empty()
。您的编辑被mods拒绝,因此我编辑了我的答案,并将empty()
更改回remove()
不起作用的行应该是$(obj).
而不是obj…
不起作用的行应该是$(obj).
而不是obj…