jQuery是(':visible')表现得很有趣.

DA.*_*DA. 6 jquery visible

我在使用jQuery测试对象的可见性时遇到了一个奇怪的问题.

我有这个测试JS:

alert($myObject.css('display'));
alert($myObject.is(':visible'));
Run Code Online (Sandbox Code Playgroud)

第一个警报显示"块",这是有意义的,因为firebug清楚地显示它被设置为display:block,您可以在浏览器中看到页面上的对象.

但是,第二个警报显示"错误".这根本不对我有任何意义.

我误解了is(':visible')的用法吗?

Tad*_*eck 10

考虑这个HTML:

<div id="div1" style="display: none;">
    <div id="div2">
        <p>Some div content</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这个JavaScript:

$myObject = jQuery('#div2');
alert($myObject.css('display')); // 'block'
alert($myObject.is(':visible')); // false
Run Code Online (Sandbox Code Playgroud)

有多种原因$myObject可能不可见,即使它已display: none设置样式.有关详细信息,请参阅:visible selector docs.

现在有意义吗?