【发布时间】:2018-04-04 09:36:34
【问题描述】:
有人可以看看下面的 javascript 吗?
我想创建 3 个选项卡,在任何给定时间只显示一个选项卡。
目前,在测试以下代码时,默认情况下 3 个选项卡会在彼此下方显示(而不是仅显示一个),并且只有在选择了一个选项卡后,其他选项卡才会隐藏。
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'General')">
<span size="4" style="font-size: small;">
<span color="grey" style="color: grey;">
<b>General</b>
</span>
</span>
</button>
<button class="tablinks" onclick="openCity(event, 'Product Specifications')">
<span size="4" style="font-size: small;">
<span color="grey" style="color: grey;">
<b>Product Specifications</b>
</span>
</span>
</button>
<button class="tablinks" onclick="openCity(event, 'Guarantee')">
<span size="4" style="font-size: small;">
<span color="grey" style="color: grey;">
<b>Guarantee</b>
</span>
</span>
</button>
</div>
<div id="General" class="tabcontent">
CONTENT
</div>
<div id="Product Specifications" class="tabcontent">
CONTENT
</div>
<div id="Guarantee" class="tabcontent">
CONTENT
</div>
<script>// <![CDATA[
function openCity(evt, cityName) {
// Declare all variables
var i, tabcontent, tablinks;
// Get all elements with class="tabcontent" and hide them
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// Get all elements with class="tablinks" and remove the class "active"
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// Show the current tab, and add an "active" class to the button that opened the tab
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
// ]]>
</script>
【问题讨论】:
标签: javascript html tabs