84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
<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')
才是你想要的吧……