0

当我调用.hide()一个 jQuery 对象时,该对象的样式为display: none. 当您尝试检查该对象是否被 隐藏时object.is(':hidden'),它返回 true,但是当您尝试使用相同的 jQuery 方法检查其第一个子对象时,有些返回 false,而有些返回 true。

样本:

<div id="parentContainer">
    <div id="childContainer"></div>
    <p id="childContainer"></p>
</div>
$('#parentContainer').hide();

$("div[id='childContainer']").is(':hidden') // returns false
$("p[id='childContainer']").is(':hidden')   // returns true

任何人都知道为什么这种行为是这样的?

4

1 回答 1

1

这可能与页面上有两个相同的 ID 有关。

如果您有重复项,则 html 中的 ID 应该是唯一的,那么您应该使用类,否则您的代码将无法通过 w3c 验证等。

同样在你的帖子中,你把 $("div[id='childContainer']").is(':hidden') --> 返回 false 但是当我在 jsfiddle 中尝试它时,我得到了 true。

示例http://jsfiddle.net/kep7d/1/

于 2012-08-03T16:27:35.773 回答