<span id="test" style="visibility:hidden;position:absolute;bottom:0;left:0;font-weight:bold;font-size:12px;font-family:'arial';">中</span>
如上代码,用$("#test").is(':hidden') 取出来的是假,用attr 方法取出来是undefined,实在头疼,搞了好几个小时...
人生最曼妙的风景,竟是内心的淡定与从容!
var ele = $("#test").css("visibility") === "hidden" ? $("#test") : undefined; 试试,最好先将$("#test")缓存下
CSS样式和元素属性不是一回事
jQuery的:hidden选择器用于匹配所有不可见的元素,将其封装为jQuery对象并返回。与该选择器相对的是:visible选择器,用于匹配所有可见的元素。注意:在jQuery中,visibility: hidden;和opacity: 0;都被视作可见的,因为它们在页面上占据了相应的物理空间。所以$(':hidden')肯定匹配不到你要的元素。
jQuery
:hidden
:visible
visibility: hidden;
opacity: 0;
$(':hidden')
// 使用filter挑选出符合的元素 $("span").filter(function() { return $(this).css("visibility") == "hidden"; })
我个人觉得比较好的方法应该给visibility: hidden的元素加一个特定的className,比如hidden-obj,你获取的时候使用$('.hidden-obj'),这样就简单多了。
visibility: hidden
className
hidden-obj
$('.hidden-obj')
既然写上了 ID ,为何不用 $("#test")
$("#test")
$("#test").css('visibility')才是你想要的吧……
$("#test").css('visibility')
var ele = $("#test").css("visibility") === "hidden" ? $("#test") : undefined; 试试,最好先将$("#test")缓存下
CSS样式和元素属性不是一回事
jQuery
的:hidden
选择器用于匹配所有不可见的元素,将其封装为jQuery对象并返回。与该选择器相对的是
:visible
选择器,用于匹配所有可见的元素。注意:
在
jQuery
中,visibility: hidden;
和opacity: 0;
都被视作可见的,因为它们在页面上占据了相应的物理空间。所以
$(':hidden')
肯定匹配不到你要的元素。我个人觉得比较好的方法应该给
visibility: hidden
的元素加一个特定的className
,比如hidden-obj
,你获取的时候使用$('.hidden-obj')
,这样就简单多了。既然写上了 ID ,
为何不用
$("#test")
$("#test").css('visibility')
才是你想要的吧……