如果在jQuery

时间:2017-10-11 18:30:32

标签: jquery html css hidden display

如果特定元素具有display:none,我需要更改另一个元素的display属性。



if ($("#first-layer").css('display') === 'none') {
  $("#second-layer").removeAttr("visibility");
}

#second-layer {
  color: black;
  background-color: red;
  width: 200px;
  height: 150px;
  background: yellow;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  visibility: hidden; // here I have to change by jQuery
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<header>
  <div id="first-layer">
    <div id="header-elements">
      <div id="img-rain" class="animated fadeIn" class="img"><img src="img/img.png"> </div>
      <div id="typed-strings" class="text">
        <span class="animated fadeInUp" id="typed"></span>
        <br/>
        <span class="description animated fadeIn">Your weather in one place</span>
      </div>
    </div>
    <div id="typed-strings">
    </div>
    <div class="start">
      <button type="button" class="btn btn-primary btn-lg responsive-width button-                       bg-clr animated fadeIn">Get Started</button>
    </div>
  </div>
  <div id="second-layer">123</div>

</header>
&#13;
&#13;
&#13;

我尝试过来自互联网的解决方案,但他们没有工作。

2 个答案:

答案 0 :(得分:1)

您的代码目前无法执行任何操作,但您可能会更轻松地使用

if ($("#first-layer").not(":visible")) { // or .is(":hidden")
  $("#second-layer").show();
}

$("#second-layer").css({visibility:visible});

因为CSS声明不是属性

更多关于这里的检测 Difference between :hidden and :not(:visible) in jQuery

答案 1 :(得分:1)

使用jQuery( ":hidden" )

// if selector is none then
if($('#first-layer').is(":hidden")){

     // alter second-layers visibility
     $('#second-layer').css('visibility', 'visible');
}