当html元素的高度和宽度设置为零时,jQuery在使用选择器时找不到该对象,并且虽然该对象可见,但指定可见。
例如
$( “#测试”)的儿童( “:可见”)。
以上将忽略宽度和高度为零的#test子项。这是jQuery中的预期功能还是错误?是否有任何解决方法来获取对象?
非常感谢, 阿伦
PS:我正在使用最新版本的jQuery - 1.3.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