.is("可见")和.is(":可见")的工作方式不同

brk*_*brk 2 javascript css jquery

我正在使用jquery可见选择器来检查子元素是否可见.但令人惊讶的是.is("可见")和.is(":visible")在使用css可见性时显示不同的结果:隐藏属性.当我正在使用.is('可见')它警告错误并且使用.is(":visible")它是警告真实的.但是在将css属性更改为display:none时,结果是一致的.这是代码.

HTML

<div id="parentEle">
    I have hidden span
    <span class="hiddenContent">
        I am hiddenContent
    </span>
</div>
<button type="button" onclick="_checkChild()">Check Child</button>
Run Code Online (Sandbox Code Playgroud)

JS

function _checkChild(){
    var x= false;
    x =$("#parentEle").children(".hiddenContent").is(":visible");
    alert(x);
}
Run Code Online (Sandbox Code Playgroud)

CSS

.hiddenContent{
   visibility:hidden
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

能帮助您理解这种差异吗?谢谢

Kar*_*ren 8

.is(":visible");是一个jQuery特殊选择器,用于检查元素是否可见,这可能会不时变化..is("visible");是一个标准的选择器,可以检查元素是否,<visible />并且不会告诉您有关它的可见性的任何信息.