タブを次のように整理しました。
<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>
要素内のリンクの 1 つを押すと<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';
}