jQuery show element如果不为空

时间:2015-04-16 19:25:41

标签: jquery jquery-selectors

我有以下jQuery代码:

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

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

2 个答案:

答案 0 :(得分:1)

假设您要选择非空的#agency-header-toolbar。使用

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

答案 1 :(得分:1)

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

您想使用is(返回布尔结果),如

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

或使用单个选择器,如

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

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

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