Jquery是(“:empty)在.remove()之后不工作

时间:2017-07-02 18:05:09

标签: javascript jquery html

单击使用Ajax发送表单的按钮后,可以淡出div并将其从页面中删除。淡入淡出和删除工作正常,因为我在浏览器中检查了HTML被删除但确实如此,但是检查div是否为空的if语句由于某种原因不起作用。

这是我的代码:

group_concat(DISTINCT tf.id) as `tfid`, 

#otherSessions的if语句是没有被执行的,我检查了div id并且它们匹配,如果我在#otherSessions中没有内容的情况下呈现if语句的作用,它只在我在我的内部使用时提交听众。

newAjaxRequest就是在那里发布一个ajax请求。

3 个答案:

答案 0 :(得分:1)

如果您尝试检查div是否有children,请使用if( $("#otherSessions").children().length === 0 )

答案 1 :(得分:1)

感谢Denialos和Patrick Evans,我整理了出来。

由于fadeOut是非阻塞的,我在完整函数中添加了if语句,并使用Denialos的答案来检查我的div是否有任何子项,因为只使用if($("#otherSessions").is(':empty'))确实有效,因为remove()正在留下空格

所以我的最终解决方案如下:

$(this).parent().parent().fadeOut("slow", function()
    {
      $(this).remove();

      if($("#otherSessions").children().length === 0)
      {
        $("#otherSessionsTitle").text("No other active sessions");
      }
    });

答案 2 :(得分:0)

试试这种方式

$('.sessionSignOutBtn').submit(function (event)
{
  event.preventDefault();
  newAjaxRequest($(this).serialize(), 'index.php?ajax=sessionSignOut', removedSessionBox);
  $(this).parent().parent().fadeOut('slow', function ()
  {
    $(this).remove();
    if ($('#otherSessions').is(':empty')) {
      $('#otherSessionsTitle').text('No other active sessions');
    }
  });
});