javascript - 使用两个按钮在两个 div 之间切换的简单、非 jquery 方法是什么?
问题描述
我正在寻找一种在两个 div 之间切换的简单的非 jquery 方法。具体来说,单击按钮A将显示div A内容(并隐藏div B内容),单击按钮B将显示div B内容(并隐藏div A内容。我希望在页面加载时默认显示div A内容。
我拥有的代码没有从 onclick 中隐藏适当的 div
我环顾四周,但每个解决方案似乎都过于复杂或似乎涉及 jquery - 我真的不想使用它,因为我必须在我不应该更新那些东西的网站上使用旧的 jquery 库。
<button class="button" onclick="content_A(); Hide_Content_B;">Content A</button>
<button class="button" onclick="content_B(); Hide_Content_A;">Content B</button>
<script>
function Content_A() {
var x = document.getElementById("A");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
<script>
function Hide_Content_B() {
var x = document.getElementById("B");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "none";
}
}
</script>
<script>
function Content_B() {
var x = document.getElementById("B");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
<script>
function Hide_Content_A() {
var x = document.getElementById("A");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "none";
}
}
</script>
<div id="A"> stuff</div>
<div id="B"> other stuff </div>
解决方案
创建一个函数showContent
,将id
要切换的元素的 用作参数并仅切换CSS 类,即visible
在具有该 id 的元素上。
使用CSS 类最初隐藏“可切换”元素。您可以visible
直接在页面加载时显示的元素上设置类。
这是一个例子:
function showContent(id) {
document.getElementById(id).classList.toggle('visible')
}
/*
All elements with class "toggleable"
should be hidden.
*/
.toggleable {
display: none;
}
/*
All elements that have both
class "toggleable" and "visible"
should be visible.
*/
.toggleable.visible {
display: block;
}
<button onclick="showContent('a');" >Show Content A</button>
<button onclick="showContent('b');" >Show Content B</button>
<div class="toggleable visible" id="a">
Hello Content A!
</div>
<div class="toggleable" id="b">
Hello Content B!
</div>
推荐阅读
- swift - TableView中的图像在出现时动画
- android - 您好,我正在尝试为 Flutter 设置我的 Android 设备。梯度错误
- angular - Angular 9新项目-ng服务时未加载应用程序根
- javascript - 刷新后的角度重定向并阻止通过直接 url 访问
- verilog - 如何在verilog中将LUT解包到逻辑单元中
- css - Chrome 上不支持内联 css 剪辑路径
- android - imageCache.clear() 在 Flutter 中的 ListView 上不起作用
- reactjs - React 本机元素类型无效。需要一个字符串或类/函数,但未定义
- android - Flutter Signed APK build 中无法打开 zipalign 失败错误
- sql-server - 寻找编写代码逻辑的更好方法