我的HTML
<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>
JavaScript是
<script type="text/javascript">
function showStuff (id)
{
if (document.getElementById(id).style.display === "block")
{
document.getElementById(id).style.display = "none";
}
else
{
document.getElementById(id).style.display = "block";
}
}
</script>
当我点击特定标签时,其他标签的内容应该被隐藏但不会隐藏。这是我的所有代码。
答案 0 :(得分:5)
为所有标签内容元素提供一个通用的CSS类,可以更轻松地选择和设置样式,例如在this demo和下面的代码中。
<强> CSS 强>
.tabContent {
display:none;
}
<强>的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';
}
<强> 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>
我还将showElement
函数更新为更通用,以便在隐藏和显示正确的选项卡内容时减少代码重复。
唯一需要注意的是,IE8或更低版本中无法使用getElementsByClassName()
。 Other (modern) browsers具有此功能但有其他选择 - 请参阅getElementsByClassName & IE8: Object doesn't support this property or method。
答案 1 :(得分:0)
您必须先为所有标签内容设置display: none
。
即G。
<script type="text/javascript">
function showTab(selected, total)
{
for(i = 1; i <= total; i += 1)
{
document.getElementById('tabs-' + i).style.display = 'none';
}
document.getElementById('tabs-' + selected).style.display = 'block';
}
</script>
<div id="tabs-1" style="display: none">tab1</div>
<div id="tabs-2" style="display: none">tab2</div>
<div id="tabs-3" style="display: none">tab3</div>
<ul class="side bar tabs">
<li id = "tabs1" onclick = "showTab(1,3)">City</li>
<li id = "tabs2" onclick = "showTab(2,3)">Country</li>
<li id = "tabs3" onclick = "showTab(3,3)">Humanity</li>
</ul>
如果您的代码中存在类似的内容,我确信它会起作用。顺便说一句,检查您的控制台窗口是否有JavaScript错误。
答案 2 :(得分:0)
我认为应该这样做:
<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>
<script type="text/javascript">
function showStuff (id)
{
document.getElementById("tabs-1").style.display = "none";
document.getElementById("tabs-2").style.display = "none";
document.getElementById("tabs-3").style.display = "none";
document.getElementById(id).style.display = "block";
}
</script>
<div id="tabs-1" style="display:none">tabs 1 content</div>
<div id="tabs-2" style="display:none">tabs 2 content</div>
<div id="tabs-3" style="display:none">tabs 3 content</div>
答案 3 :(得分:0)
<script>
$(function() {
$( "#tabs" ).tabs();
});
</script>
<div id="tabs">
<ul>
<li><a href="#tabs-1">City</a></li>
<li><a href="#tabs-2">Country</a></li>
<li><a href="#tabs-3">Humanity</a></li>
</ul>
<div id="tabs-1">..............</div>
<div id="tabs-2">..............</div>
<div id="tabs-3">..............</div>
</div>
答案 4 :(得分:0)
你可以试试这个
function showStuff(id){
$('#tabs1').empty();
$('#tab2').show();
}
或其他方式