简体   繁体   English

单击时显示/隐藏内容

[英]On click show / hide content

I have a problem with javascript show/hide content from div.我在 div 中显示/隐藏 javascript 内容时遇到问题。 When I click on the first button I got content from that but when I click on the second I need to hide content from first and show content from second div.当我点击第一个按钮时,我从中获得了内容,但是当我点击第二个按钮时,我需要隐藏第一个按钮的内容并显示第二个 div 的内容。 My code for this is:我的代码是:

<script type="text/javascript">
            function showHideDiv(ele) {
                var srcElement = document.getElementById(ele);
                if (srcElement != null) {
                    if (srcElement.style.display == "block") {
                        srcElement.style.display = 'none';
                    }
                    else {
                        srcElement.style.display = 'block';
                    }
                    return false;
                }
            }
            function showHideDiv1(ele) {
                var srcElement = document.getElementById(ele);
                if (srcElement != null) {
                    if (srcElement.style.display == "block") {
                        srcElement.style.display = 'none';
                    }
                    else {
                        srcElement.style.display = 'block';
                    }
                    return false;
                }
            }
        </script>

HTML: HTML:

<div class="listsearch-header fl-wrap">
<h3>
<a class="button-one" onClick="showHideDiv('divMsg')" title="Relevant Title" href="#">Places</a>
<a class="button-two" onClick="showHideDiv1('divMsg1')" title="Relevant Title" href="#">Events</a>
</h3>
<div id="divMsg" style=" display:none">
<b>Places</b>
</div>
<div id="divMsg1" style="display:none">
<b>Events</b>
</div>
</div>

How to solve this when clicking on second button to hide content from the first button.单击第二个按钮以隐藏第一个按钮的内容时如何解决此问题。 Thanks, all谢谢,所有

You could do with toggle the class based on clicked element您可以根据单击的元素切换类

 function showHideDiv(ele) { var srcElement = document.getElementById(ele); document.querySelectorAll('.box').forEach(a => a.classList.add('hide')) if (srcElement != null) { srcElement.classList.toggle('hide') } }
 .hide { display: none; }
 <div class="listsearch-header fl-wrap"> <h3> <a class="button-one" onClick="showHideDiv('divMsg')" title="Relevant Title" href="#">Places</a> <a class="button-two" onClick="showHideDiv('divMsg1')" title="Relevant Title" href="#">Events</a> </h3> <div id="divMsg" class="box hide"> <b>Places</b> </div> <div id="divMsg1" class="box hide"> <b>Events</b> </div> </div>

You could use a generic function which takes the actual elements to be shown or hidden as input parameters.您可以使用通用函数,该函数将要显示或隐藏的实际元素作为输入参数。

 function showHideDiv(show, hide) { document.getElementById(show).style.display = "block"; document.getElementById(hide).style.display = "none"; }
 <div class="listsearch-header fl-wrap"> <h3> <a class="button-one" onClick="showHideDiv('divMsg','divMsg1')" title="Relevant Title" href="#">Places</a> <a class="button-two" onClick="showHideDiv('divMsg1','divMsg')" title="Relevant Title" href="#">Events</a> </h3> <div id="divMsg" style=" display:none"> <b>Places</b> </div> <div id="divMsg1" style="display:none"> <b>Events</b> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM