jQuery .hide()方法和object.is(':hidden')

时间:2012-08-03 16:23:45

标签: jquery html

当我在jQuery对象上调用.hide()时,该对象的样式为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

任何人都知道为什么行为会像这样?

1 个答案:

答案 0 :(得分:1)

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

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

同样在你的帖子中你放了$(“div [id ='childContainer']”)。is(':hidden') - &gt;返回false但是当我在jsfiddle中尝试它时我得到了真的。

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