JQuery:如果div是可见的

Mar*_*ark 60 html javascript css checkbox jquery

我正在使用JS作为改变我正在创建的SPA内容的一种方式.当我按下按钮更改内容时,HTML会从此更改:

<div id="selectDiv" style="display: none;">
Run Code Online (Sandbox Code Playgroud)

对此:

<div id="selectDiv" style>
Run Code Online (Sandbox Code Playgroud)

现在我的SPA的一部分有一个包含许多复选框的div,每个复选框代表一个div,所以当我按下提交按钮时,应该显示的下一个div将是所选复选框列表中的第一个项目.

我想知道JQuery中是否有一种方法可以"几乎检测到"哪个div现在可见.这样的事情:

if($('#selectDiv').isVisible()){
    //JS code associated with this div.
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Mos*_*Feu 90

您可以使用 .is(':visible')

选择所有可见的元素.

例如:

if($('#selectDiv').is(':visible')){
Run Code Online (Sandbox Code Playgroud)

此外,您可以通过以下方式获得可见的div:

$('div:visible').callYourFunction();
Run Code Online (Sandbox Code Playgroud)

实例:

console.log($('#selectDiv').is(':visible'));
console.log($('#visibleDiv').is(':visible'));
Run Code Online (Sandbox Code Playgroud)
#selectDiv {
  display: none;  
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="selectDiv"></div>
<div id="visibleDiv"></div>
Run Code Online (Sandbox Code Playgroud)

  • 嘿那里 - 不争辩这个答案的正确性,但请考虑对此类问题提出建议或投票。Stack Overflow 上已经有一些非常全面的答案,我们可以指向这个问题。 (2认同)