Jquery处理零宽度和高度的对象是不可见的

时间:2009-09-18 12:06:30

标签: jquery

当html元素的高度和宽度设置为零时,jQuery在使用选择器时找不到该对象,并且虽然该对象可见,但指定可见。

例如

$( “#测试”)的儿童( “:可见”)。

以上将忽略宽度和高度为零的#test子项。这是jQuery中的预期功能还是错误?是否有任何解决方法来获取对象?

非常感谢, 阿伦

PS:我正在使用最新版本的jQuery - 1.3.2

2 个答案:

答案 0 :(得分:3)

不是jQuery中的错误(事实上,jQuery使用的Sizzle Selector Engine)。来自jQuery源代码

Sizzle.selectors.filters.visible = function(elem){
    return elem.offsetWidth > 0 || elem.offsetHeight > 0;
};

使用不同的逻辑实现自己的过滤器。过滤器在jQuery-1.3.2.js源文件中的第2373行声明。

答案 1 :(得分:2)

是的,这是预期的功能。来自文档:

  

如何:可见计算已更改   在jQuery 1.3.2中。元素假定为   如果它和它的父母消费可见   文件中的空间。 CSS可见性   没有考虑到。   
http://docs.jquery.com/Selectors/visible

http://docs.jquery.com/Selectors/visible