use*_*844 4 html javascript css user-interface tabs
我的HTML是
function showStuff(id) {
if (document.getElementById(id).style.display === "block") {
document.getElementById(id).style.display = "none";
} else {
document.getElementById(id).style.display = "block";
}
}Run Code Online (Sandbox Code Playgroud)
而JavaScript则是
<ul class="side bar tabs">
<li id="tabs1" onclick="showStuff('tabs-1')">City</li>
<li id="tabs2" onclick="showStuff('tabs-2')">Country</li>
<li id="tabs3" onclick="showStuff('tabs-3')">Humanity</li>
</ul>
<div id="tabs-1" style="display : none">
<p>Proin elit m</p>
</div>
<div id="tabs-2" style="display : none">
<p>M massa ut d</p>
</div>
<div id="tabs-3" style="display : none">
<p> sodales.</p>
</div>Run Code Online (Sandbox Code Playgroud)
当我单击特定选项卡时,其他选项卡的内容应该被隐藏但不隐藏.这是我的所有代码.
为所有选项卡内容元素提供一个通用的CSS类,可以更容易地选择和设置它们,例如在下面的演示和代码中.
CSS
.tabContent {
display:none;
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的
function showStuff(element) {
var tabContents = document.getElementsByClassName('tabContent');
for (var i = 0; i < tabContents.length; i++) {
tabContents[i].style.display = 'none';
}
// change tabsX into tabs-X in order to find the correct tab content
var tabContentIdToShow = element.id.replace(/(\d)/g, '-$1');
document.getElementById(tabContentIdToShow).style.display = 'block';
}
Run Code Online (Sandbox Code Playgroud)
HTML
<ul class="side bar tabs">
<li id="tabs1" onclick="showStuff(this)">City</li>
<li id="tabs2" onclick="showStuff(this)">Country</li>
<li id="tabs3" onclick="showStuff(this)">Humanity</li>
</ul>
<div id="tabs-1" class="tabContent">
<p>Proin elit m</p>
</div>
<div id="tabs-2" class="tabContent">
<p>M massa ut d</p>
</div>
<div id="tabs-3" class="tabContent">
<p> sodales.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我还将该showElement函数更新为更通用,以便在隐藏和显示正确的选项卡内容时减少代码重复.
唯一需要注意的是getElementsByClassName()IE8或以下版本不可用.其他(现代)浏览器具有此功能,但有其他选择 - 请参阅getElementsByClassName和IE8:Object不支持此属性或方法.