gpt4 book ai didi

javascript - 我怎样才能确保始终显示至少一个 DIV?

转载 作者:行者123 更新时间:2023-11-28 00:50:46 25 4
gpt4 key购买 nike

我发现这段代码可以使用 javascript 显示或隐藏 DIV。它只允许显示一个 div,这正是我想要的。但是,我希望它一次至少显示一个 DIV。它基本上在当前隐藏和显示它们之间切换。我希望它位于如果我再次点击 DIV 2 的位置,它不会隐藏它并且什么都不做。请帮忙,谢谢。

页面.html

    <script src="scripts/pages.js"></script>
<div class="main_div">
<div class="inner_div">
<div id="Div1">I'm Div One</div>
<div id="Div2" style="display: none;">I'm Div Two</div>
<div id="Div3" style="display: none;">I'm Div Three</div>
<div id="Div4" style="display: none;">I'm Div Four</div>
</div>
<div class="buttons">
<a href="#" onclick="divVisibility('Div1');">Div1</a> |
<a href="#" onclick="divVisibility('Div2');">Div2</a> |
<a href="#" onclick="divVisibility('Div3');">Div3</a> |
<a href="#" onclick="divVisibility('Div4');">Div4</a>
</div>
</div>

页面.js

var divs = ["Div1", "Div2", "Div3", "Div4"];
var visibleDivId = null;
function divVisibility(divId) {
if(visibleDivId === divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
}
hideNonVisibleDivs();
}
function hideNonVisibleDivs() {
var i, divId, div;
for(i = 0; i < divs.length; i++) {
divId = divs[i];
div = document.getElementById(divId);
if(visibleDivId === divId) {
div.style.display = "block";
} else {
div.style.display = "none";
}
}
}

最佳答案

您可以将代码简化为以下内容。您隐藏所有 div 并显示与单击的元素对应的 div。

function divVisibility(divId) {
document.querySelectorAll(".inner_div > div").forEach(e => e.style.display = 'none');
document.getElementById(divId).style.display = 'block';
}
<div class="main_div">
<div class="inner_div">
<div id="Div1">I'm Div One</div>
<div id="Div2" style="display: none;">I'm Div Two</div>
<div id="Div3" style="display: none;">I'm Div Three</div>
<div id="Div4" style="display: none;">I'm Div Four</div>
</div>
<div class="buttons">
<a href="#" onclick="divVisibility('Div1');">Div1</a> |
<a href="#" onclick="divVisibility('Div2');">Div2</a> |
<a href="#" onclick="divVisibility('Div3');">Div3</a> |
<a href="#" onclick="divVisibility('Div4');">Div4</a>
</div>
</div>

关于javascript - 我怎样才能确保始终显示至少一个 DIV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53231437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com