gpt4 book ai didi

jquery - 为什么它不删除表?

转载 作者:数据小太阳 更新时间:2023-10-29 05:30:58 26 4
gpt4 key购买 nike

我有这段代码

// TR Fading when deleted
$('.delete').live('click', function() {
$.ajax({
type: 'POST',
url: 'history/delete/id/'+$(this).attr('id')
});
$(this).closest('tr').fadeOut('slow', function() {
$(this).remove();
if($(this).closest('table').find('tbody').is(':empty'))
$('#latest').remove();
});
return false;
});

当我想通过删除按钮删除表格行时触发(如图所示) image http://aviary.com/viewfull?fguid=433f68f6-d18d-102d-a9f3-0030488e168c&nowatermark=true

可能会发生表格中没有表格行的情况。发生这种情况时,我想删除整个表格,但表格并未被删除。行代码 $(this).remove(); 有效并且 this 似乎指的是该范围内的 tr 元素,因为整个正在删除行,但接下来的 2 行不起作用。该表未被删除。

编辑

我将 if($(this).closest('table').find('tbody').is(':empty')) 更改为 if(!$ (this).closest('table').find('tbody').is(':empty')) (感叹号)看看它是否删除了它是否删除了整个表,但我检查了删除最后一行前后的表元素,得到这个

image http://rookery9.aviary.com.s3.amazonaws.com/4344000/4344383_4fbd.png

JS 说 tbody 不为空,google chrome 则不然。不知道怎么解决

最佳答案

问题是一旦你删除它,像 .closest() 这样的相对选择器不会做任何事情,因为该元素不再有父元素。还有 :empty 不工作,因为它包含文本节点from the docs :

Select all elements that have no children (including text nodes).

所以 :empty如果有任何空白,则不会匹配(警报或日志 $("latest tbody").html()) 看看我的意思),几乎可以肯定是这种情况,下面的示例也是如此。相反,您可以使用 :has(tr) 检查表行,和 :not() 否定它,像这样:

$('.delete').live('click', function() {
$(this).closest('tr').fadeOut('slow', function() {
$(this).remove();
$("#latest tbody:not(:has(tr))").parent().remove();
});
return false;
});

You can view a quick demo here , 如果 :not(:has(tr))选择器不匹配任何东西……如果没有无行 <tbody> 则它不会匹配,它只是不会删除任何内容。

关于jquery - 为什么它不删除表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com