如何用jquery取visibility:hidden 的值?

<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,实在头疼,搞了好几个小时...
clipboard.png

阅读 7k
5 个回答

var ele = $("#test").css("visibility") === "hidden" ? $("#test") : undefined; 试试,最好先将$("#test")缓存下

CSS样式和元素属性不是一回事

jQuery:hidden选择器用于匹配所有不可见的元素,将其封装为jQuery对象并返回。
与该选择器相对的是:visible选择器,用于匹配所有可见的元素。
注意:
jQuery中,visibility: hidden;opacity: 0;都被视作可见的,因为它们在页面上占据了相应的物理空间。
所以$(':hidden')肯定匹配不到你要的元素。

// 使用filter挑选出符合的元素
$("span").filter(function() { return $(this).css("visibility") == "hidden"; })

我个人觉得比较好的方法应该给visibility: hidden的元素加一个特定的className,比如hidden-obj,你获取的时候使用$('.hidden-obj'),这样就简单多了。

既然写上了 ID ,
为何不用 $("#test")

$("#test").css('visibility')才是你想要的吧……

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