我有一个显示过滤器列表的双列表,可以通过单击每个过滤器旁边的一个小“x”图标来删除这些过滤器:
<tr>
<td class="filter-point">State is</td>
<td class="tag-column"><div class="tag">California <i class="fa fa-close"></i></div></td>
</tr>
$("td.tag-column .tag i").click(function(){
$(this).parent().remove();
});
如果已删除所有标记(如果td.tag-column为空),我希望能够删除整行,但我似乎无法找到正确的语法或附加行的方法清空标签清空。
答案 0 :(得分:1)
只需扩展当前点击事件,在每次删除代码后检查该行是否还有任何代码:
$("td.tag-column .tag i").click(function(){
var td = $(this).closest('td');
$(this).parent().remove(); //remove tag
if (!td.children('.tag').length) td.parent().remove(); //if no tags left, remove row
});
答案 1 :(得分:1)
你可以这样做。
$("td.tag-column .tag i").click(function() {
$(this).parent().remove();
var tr = $(this).closest('tr');
tr.find('.tag').length || tr.remove();
});