找出id是否等于可见或隐藏

时间:2017-09-29 21:54:04

标签: javascript jquery html css

当我隐藏我的Div元素时,我不明白为什么这会通过我的if条件。如果div id等于可见,我试图找出一种写入方式然后警告用户"内容可见"。如果我的div id等于隐藏,则提醒用户"内容隐藏"



//document.getElementById("myDiv").style.visibility = "visible";
document.getElementById("myDiv").style.visibility = "visible";

var status = document.getElementById("myDiv").style.visibility;


if($("#myDiv").is(":visible") == true){
    alert("visible JQuery");
}

if (document.getElementById("myDiv").style.visibility === "hidden")
{
   alert("visible JS");
}

alert(status);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<div id="myDiv">Hello</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

  

具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。

jQuery :visible

:visible选择器仅适用于属性display

你能做的是:

if ($("#myDiv").css("visibility") == "hidden") {
    // do something when hidden ...
}

答案 1 :(得分:1)

这似乎对我有用:

document.getElementById("myDiv").style.visibility = "visible";
document.getElementById("myDiv").style.visibility = "hidden";

if($("#myDiv").css("visibility") !== "hidden") {
  alert("visible JQuery");
}

if (document.getElementById("myDiv").style.visibility === "hidden") {
   alert("hidden JS");
}

<强> Codepen:

https://codepen.io/foozie3moons/pen/OxgomO

修改 更新了我的回复,就好像您没有将可见性设置为可见。

答案 2 :(得分:0)

visibility ='hidden'仍占用浏览器空间,因此jQuery报告为“:visible”。如果你做了style.display ='none',你的jQuery可见检查就不会触发。