javascript - 如何使用 JavaScript 隐藏和显示多个 Div

标签 javascript php html css

我如何使用 JavaScript 隐藏和显示多个 div?我不想使用 JQuery。我可以让它用于隐藏和显示一个 div,而不是多个 div。出现问题是因为我使用 PHP 显示多条记录。这些记录包含在具有相同 ID 的 div 中。

document.getElementById( 'history-slider' ).addEventListener( 'click', function() {
    
      document.getElementById('edit-slider').style.display = 'block';
      document.getElementById('history-slider').style.display = 'none';
    
    }, false );
    
    document.getElementById( 'edit-slider' ).addEventListener( 'click', function() {
    
      document.getElementById('history-slider').style.display = 'block';
      document..getElementById('edit-slider').style.display = 'none';
    
    }, false );
.edit-slider {
    	display: none;
    }
<div class="panel-body panel-strip" id="history-slider">
                            <h3>Title</h3>
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
                            <p>
                              <img src="img/time_icon.png" class="time-icon"> <span class="hour-text">4.00 hrs</span>
                            </p>
                        </div>
                <hr class="calendar-divider">
                <div class="panel-body panel-strip edit-slider">
                    <div class="row pull-right">
                        <a href="add.php">
                            <div class="col-xs-4 delete-panel">
                                <img src="img/delete_icon.png" class="edit-images center-block"><span class="text-center edit-texts">Delete</span>
                            </div>
                            </a>
                            <a href="http://google.com/">
                            <div class="col-xs-4 edit-panel">
                                <img src="img/edit_icon.png" class="edit-images center-block"><span class="text-center edit-texts edit-text">Edit</span>
                            </div>
                            </a>
                            <a href="http://google.com/">
                            <div class="col-xs-4 record-panel">
                                <img src="img/record_icon.png" class="edit-images center-block"><span class="text-center edit-texts">Record</span>
                            </div>
                            </a>
                        </div>
                    </div>

HTML;

                    <div class="panel-body panel-strip" id="history-slider">
                        <h3>Title</h3>
                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
                        <p>
                          <img src="img/time_icon.png" class="time-icon"> <span class="hour-text">4.00 hrs</span>
                        </p>
                    </div>
            <hr class="calendar-divider">
            <div class="panel-body panel-strip edit-slider">
                <div class="row pull-right">
                    <a href="add.php">
                        <div class="col-xs-4 delete-panel">
                            <img src="img/delete_icon.png" class="edit-images center-block"><span class="text-center edit-texts">Delete</span>
                        </div>
                        </a>
                        <a href="http://google.com/">
                        <div class="col-xs-4 edit-panel">
                            <img src="img/edit_icon.png" class="edit-images center-block"><span class="text-center edit-texts edit-text">Edit</span>
                        </div>
                        </a>
                        <a href="http://google.com/">
                        <div class="col-xs-4 record-panel">
                            <img src="img/record_icon.png" class="edit-images center-block"><span class="text-center edit-texts">Record</span>
                        </div>
                        </a>
                    </div>
                </div>

JavaScript;

document.getElementById( 'history-slider' ).addEventListener( 'click', function() {

  document.getElementById('edit-slider').style.display = 'block';
  document.getElementById('history-slider').style.display = 'none';

}, false );

document.getElementById( 'edit-slider' ).addEventListener( 'click', function() {

  document.getElementById('history-slider').style.display = 'block';
  document..getElementById('edit-slider').style.display = 'none';

}, false );

我还在 CSS 中设置了在页面加载时隐藏“edit-slider”div。

.edit-slider {
    display: none;
}

对于数据库中的每条记录,HTML 在循环中回显。还添加了信息以替换占位符文本。

我应该如何做才能最好地做到如果点击一个 div,它就会被隐藏,相应的 div 会显示在它所在的位置?

我正在考虑做一些事情,在 PHP 中分别为 div 提供单独的 ID,而不是将这些 ID 传递给 JavaScript 并创建某种循环?我对 JavaScript 的了解并不丰富,所以我真的不知道这种方法有多容易或多难。或者有更简单的方法吗?

这是我的第一个堆栈溢出帖子,如果我做错了什么或遗漏了什么,我深表歉意。

最佳答案

如果您使用类而不是 ID,您可以使用 document.QuerySelectorAll() 获取所有具有该类的 div,然后根据需要显示或隐藏。

像下面这样的东西会隐藏所有带有 edit-slider 类的 div 并显示(假设它们已经被隐藏)所有带有 history-slider 类的 div。

    (function() {
        var editSliders = document.querySelectorAll('div.edit-slider');
        for(var i=0;i<editSliders.length;i++){
            editSliders[i].style.display = 'none';
        }
        var historySliders = document.querySelectorAll('div.history-slider');
        for(var i=0;i<historySliders.length;i++){
            historySliders[i].style.display = 'block';
        }
    })();

关于javascript - 如何使用 JavaScript 隐藏和显示多个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35458972/

相关文章:

javascript - 如何在输入标签内显示div?

php - SQL语法: passing variable to SQL select query

php - 使用 Android 应用程序在本地测试 PHP Web 服务

python - 是否可以将 gzip 压缩与服务器发送事件 (SSE) 一起使用?

javascript - 将按顺序播放的声音保存为一个音频文件

Javascript箭头选择+滚动条

php - 设置 jEditable 参数

javascript - 仅显示来自点击链接的内容并隐藏所有 sibling

html - 在 php 返回和 html 之间中断

javascript - 如何捕获用户点击后退按钮?