jquery判断display为none的元素

1、 $('#addinfo').hide(); addinfo 根据条件不同 hide()show();
2、

if (($("#addinfo").css('display')) === 'none') {
  alert("被你发现了,我是隐藏的啦!");
  $(el).css({
    "width":360,
    "position":"fixed",
    "left":"50%",
    "top":"50%",
    "z-index":9999
  }).css({
    "margin-left":-parseFloat($(el).outerWidth())/2,
    "margin-top":-parseFloat($(el).outerHeight())/2,
    "display":'none'
    });
} else {
  $(el).css({
    "width":780,
    "position":"fixed",
    "left":"50%",
    "top":"60%",
    "z-index":9999
  }).css({
    "margin-left":-parseFloat($(el).outerWidth())/2,
    "margin-top":-parseFloat($(el).outerHeight())/2,
    "display":'none'
  });          
}


3、 

      $(document).on('click',"#ordinaryuser",function () {
           /* $('#addinfo').hide();*/
            $('#addinfo').css({'display':'none'});
            $('#isstudent').val(0);
            $('#ordinaryuser').hide();
            $('#studentuser').show();
    
        });

4、if (($("#addinfo").css('display'))=== 'none') 这样没效果,求解?

阅读 10.3k
5 个回答

$('#addinfo').css('display')==='none'
上面这段代码是可以判断元素是够隐藏的

// jquery的is方法实现
if ($("#addinfo").is(':visible'))

1、对象的显隐切换可以使用 $('.selector').toggle()参考文档
2、另外,你的样式比较冗余,可以考虑只设置宽度;
3、了解一下 $.fn.is(':visible') 或者 $.fn.get(0).style.display === 'none';

var $addInfo = $("#addinfo");
var $el = $(el);
var infoVisible = $addInfo.is(":visible"); // 设置一个变量用来调整显示和隐藏 - 数据驱动

// 样式更新
$el.css({
  position: "fixed",
  left: "50%",
  zIndex: 9999,
  marginLeft: -parseFloat($(el).outerWidth()) / 2,
  marginTop: -parseFloat($(el).outerHeight()) / 2,
  top: infoVisible ? "50%" : "60%",
  width: (infoVisible ? 780 : 360) + "px",
});

// 弹出消息
if(!infoVisible ) {
  alert("被你发现了,我是隐藏的啦!");
}

$("#addinfo").css('display')) === 'none'只针对行内样式,说白了就是#addinfo这个元素一开始必须有style属性并且还得有display的声明才行,因为.css操作直接去拿的display样式如果不在行内一般不准(比如在css里声明display:none的样式拿到以后值是"block")……

对象的显示隐藏,一般直接用toggleClass('class'),判断display是否为none,相对比较麻烦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏