我以这种方式组织了我的标签:
<ul id="tabs">
<li class="selected"><a href="#div1">DIV1</a></li>
<li class><a href="#div2">DIV2</a></li>
<li class><a href="#div3">DIV3</a></li>
</ul>
<div id="tabs_content">
<div id="div1" style="display: block;"><textarea name="div1" rows="7" cols="108"></textarea></div>
<div id="div2" style="display: none;"><textarea name="div2" rows="7" cols="108"></textarea></div>
<div id="div3" style="display: none;"><textarea name="div3" rows="7" cols="108"></textarea></div>
</div>
我希望当我按下<li>
元素内的一个链接时,对应的 Div 变为可见,display: block
而其他的则更改为display: none
我也想对单击的<li>
元素上的“选定”类执行相同的操作。
这可能吗?
我试过:
function selectTab(src)
{
document.getElementById('div1').style.display = 'none';
document.getElementById('div2').style.display = 'none';
document.getElementById('div3').style.display = 'none';
document.getElementById(src).style.display = 'block';
}
如果我通过引用传递 ID,它会起作用,onclick=""
但我想避免这种情况。
解决方案:
function selectTab(source, parent)
{
document.getElementById('div1').style.display = 'none';
document.getElementById('div2').style.display = 'none';
document.getElementById('div3').style.display = 'none';
document.getElementById(source).style.display = 'block';
var elements = [].slice.apply(document.getElementsByClassName('selected'));
for (var i = 0; i < elements.length; i++) {
elements[i].className = '';
}
parent.className = 'selected';
}