if语句有两个jQuery选择器

时间:2012-02-22 21:08:09

标签: jquery jquery-selectors if-statement

如果满足两个条件,我正在尝试显示警告:

  • display元素的#playerbox属性值为block,AND
  • display元素的#playerinfo属性值为none

我有这个:

if ($("#playerbox").css("display") == "block" && $("#playerinfo").css("display") == "none"){
    alert("test");
}

但警报从未出现过。但是,只测试一个元素就可以了:

if ($("#playerbox").css("display") == "block"){
    alert("test");
}

所以我假设我没有在if语句中正确地将两个选择器链接在一起。我做错了什么?


更新:我应该在 #playerinfo内指定#playerbox 。这有什么改变吗?

3 个答案:

答案 0 :(得分:5)

为什么不使用:visible:hidden

if ($("#playerbox:visible,#playerinfo:hidden").length == 2){
     ...
}

答案 1 :(得分:3)

你确定JQuery真的找到了你想要的元素吗?

alert($("#playerbox").length);

alert($("#playerinfo").length);

如果其中任何一个回来为0,那么你并没有真正得到这些元素。也许你有一个拼写错误,或类名设置而不是id。

答案 2 :(得分:0)

使用is

例如

 if($("#playerinfo").is(":hidden")) /* :visible for your other selector */
       //do stuff