jQuery显示元素(如果不为空)

jQuery显示元素(如果不为空),jquery,jquery-selectors,Jquery,Jquery Selectors,我有以下jQuery代码: var agencyToolbar = $('#agency-header-toolbar'); if ($(":not(:empty)", agencyToolbar)) { agencyToolbar.show(); } 上面的代码可以工作,但我不确定使用jQuery选择器是否合适。假设您要选择不是空的#代理标题工具栏。它使用起来更简单 var agencyToolbar = $("#agency-header-toolbar:not(:empty)")

我有以下jQuery代码:

var agencyToolbar = $('#agency-header-toolbar');
if ($(":not(:empty)", agencyToolbar)) {
    agencyToolbar.show();
}

上面的代码可以工作,但我不确定使用jQuery选择器是否合适。

假设您要选择不是空的
#代理标题工具栏。它使用起来更简单

var agencyToolbar = $("#agency-header-toolbar:not(:empty)");
agencyToolbar.show();

您的代码将始终启动
show
作为
$(“:not(:empty)”,agencyToolbar
创建一个jQuery对象,该对象从不为
null
,因此始终为“truthy”

您希望使用
is
(返回布尔结果)如下

或者使用单个选择器,如

$("#agency-header-toolbar:not(:empty)").show();
如果您需要更快一点,请先将id选择器作为自己的操作来执行,然后使用
not()


也许你想简单地问一下
如果($(“#机构标题工具栏”){…
@zed:你的代码总是会导致“真实”。与原始代码相同的错误。你可能想添加
。length==0
,就像
$(“#机构标题工具栏”)。length==0
!$(“#机构标题工具栏”)。length
$("#agency-header-toolbar:not(:empty)").show();
$("#agency-header-toolbar").not(":empty").show();