Jquery检查控件是否为空并显示!=“none”,为什么不起作用?

时间:2010-04-27 14:12:28

标签: jquery css

以下if语句。

emptyFields = false;
   $(".ClassNanme").each(function() {
      if(($.trim($(this).val()) == "") && ($(this).css('display') != 'none' ) {
        emptyFields = true;
    return false; // break out of the each-loop
      }
   });

但是不起作用,我不知道如何用jquery检查css属性显示是否设置为none。

当其中一个对象为空或其css属性显示未设置为none时,应该选择此if语句。

检查值是否为空可行,我所坚持的是检查对象是否隐藏(或显示:无)。

感谢。

塞萨尔。

2 个答案:

答案 0 :(得分:5)

   emptyFields = false;
   $(".ClassName").each(function() {
      if($.trim($(this).val()) === "" && $(this).is(":hidden")) {
        emptyFields = true;
        return false; // break out of the each-loop
      }
   });

在我看来,使用is(":hidden")在语法上更清晰,更容易阅读,而不是检查实际的CSS值。试一试。

此外,在与空字符串进行比较时使用===(类型相等)。

修改:Gah,将“可见”更改为“隐藏” - 我的错误。

答案 1 :(得分:1)

您正在寻找jQuery的visiblity selectors

例如:

if ($(this).is(':hidden'))