【问题标题】:JQuery: if div is visible [duplicate]JQuery:如果div可见[重复]
【发布时间】:2017-03-21 00:30:11
【问题描述】:

我使用 JS 来更改我正在创建的 SPA 的内容。当我按下一个按钮来更改内容时,HTML 会从这里改变:

<div id="selectDiv" style="display: none;">

到这里:

<div id="selectDiv" style>

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

我想知道在 JQuery 中是否有一种方法可以让代码“几乎检测”哪个 div 现在可见。像这样:

if($('#selectDiv').isVisible()){
    //JS code associated with this div.
}

有什么建议吗?

【问题讨论】:

  • 你不能用.hasClass 函数来做这样的事情吗?检查一个元素是否有某个类,然后从那里去?
  • if(document.getElementById("selectDiv").style.display !== "none"){...}
  • “几乎检测到”是什么意思?您可以使用 $elem.is(":visible") 来确定元素是否可见!

标签: javascript jquery html css checkbox


【解决方案1】:

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

选择所有可见的元素。

例如:

if($('#selectDiv').is(':visible')){

另外,您可以通过以下方式获取可见的 div:

$('div:visible').callYourFunction();

活生生的例子:

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

【讨论】:

  • 你好 - 不质疑这个答案的正确性,但请考虑为此类问题建议或投票给一个骗子。 Stack Overflow 上已经有一些非常全面的答案,我们可以将这个问题指向这个问题。
  • 我可以这样做吗? $(document).ready(function () { if ($('#selectDiv').is(':visible')) { //这个div关联的JS代码。}});
  • 是的,看看我的更新。
  • @JacksonSentzke 有什么想法吗?
  • 它在代码 sn-p 中运行,但它没有在我的代码中运行。现在只是反复试验才能使其正常工作。
猜你喜欢
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多