Show/Hide Div 通过点击另一个 div

Show/Hide Div by clicking another div

我是 javascript 的初学者,我编写了一个简单的代码,试图通过单击另一个 div 来 show/hide 一个 div。如果有人能检查我写的代码并纠正我,我将不胜感激。提前致谢。

$('DivBlue').ready(function() {
    $('DivRed').on('click', function(){
        document.getElementById('DivBlue').style.display = 'block';
    });
});
.DivRed{
  position:absolute;
  top:0;
  left:0;
  width:15vw;
  height:15vw;
  background-color:red;
}

.DivBlue{
  position:absolute;
  display:none;
  right:0;
  bottom:0;
  width:15vw;
  height:15vw;
  background-color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="DivRed"></div>
<div class="DivBlue"></div>

Toggle 在 jQuery 中发挥作用:

$(document).ready(function() {
  $('.DivRed').on('click', function() {
     $('.DivBlue').toggle();
  });
});

用这个替换你的JavaScript,它肯定会起作用。

$(document).ready(function() {
  $('.DivRed').click(
           function() {
     $('.DivBlue').toggle();
  });
});

您可以使用 jQuery 库中的 toggle() 函数来执行此操作。没有参数的 toggle() 是 show/hide 和 DOM 元素的快捷方式。

此外,最好在文档中使用 .ready() 而不是 DOM 的元素。

因此,您的 JS 代码应如下所示:

$(document).ready(function() {

    $('.DivRed').on('click', function(){
        $('.DivBlue').toggle();
    });

}); 

DEMO

你在这里犯了一些错误,

  1. 您无法通过 class 名称和 document.getElementById() 方法获得 div。您需要使用 document.getElementsByClassName() 方法。

  2. document.getElementsByClassName()return一个NodeList。您不能为 NodeList 应用 CSS。所以你需要 select 一个节点来应用 CSS 使用 document.getElementsByClassName('DivBlue')[0]

要正常工作,您的代码应更改为

$('DivBlue').ready(function() {
    $('DivRed').on('click', function(){
        document.getElementsByClassName('DivBlue')[0].style.display = 'block';
    });
});