jQuery 如果不为空则显示元素

jQuery show element if not empty

我有以下 jQuery 代码:

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

上面的代码有效,但我不确定它是否是使用 jQuery 选择器的正确方法。

假设你要select#agency-header-toolbar里面不为空。使用起来更简单

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

您的代码将始终触发 show,因为 $(":not(:empty)", agencyToolbar) 创建一个 jQuery 对象,该对象永远不会 null,因此始终是 "truthy"。

您想使用 is(returns 布尔结果),例如

if (agencyToolbar.is(':not(:empty))')){

或使用像

这样的单一选择器
$("#agency-header-toolbar:not(:empty)").show();

如果你需要它快一点,先做id选择器作为它自己的操作,然后用not()

过滤它
$("#agency-header-toolbar").not(":empty").show();