当前位置:嗨网首页>书籍在线阅读

30-讨论

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

2.7.3 讨论

警告

从jQuery 1.3.2开始,这些过滤器有了显著的变化。在1.3.2之前,两个过滤器的反应类似于你对CSS visibility 属性所期望的功能,但是现在已经不再考虑这些。相反,jQuery测试正在讨论的元素的高度和宽度(与其 offsetParent 相对)。如果任何一个维度为0,就认为该元素是隐藏的;否则,该元素是可见的。

如果需要更多的控制,可以始终使用jQuery的 filter() 方法,该方法允许以任何方式测试元素。例如,你可能想要选择设置为 display:none 的所有元素,而不是那些设置为 visibility:hidden 的元素。使用 :hidden 过滤器是没有效果的,因为它匹配具有这几种特征之一的元素(1.3.2以前版本)或者完全不考虑这两个属性(1.3.2及以后版本):

jQuery('*').filter(function(){
   return jQuery(this).css('display') === 'none'
        && jQuery(this).css('visibility') !== 'hidden';
});

上述的代码应该留给你一组设置了display:none但是没有设置visibility:hidden的元素。注意,这样的选择通常没有必要——:hidden过滤器适用于大部分情况。