我的功能:
function ChangeStep(id)
{
var i = 1;
// hide all other tabs:
while(i<10) {
var divID = 'tabs' + i;
if (divID !== null) {
document.getElementById(divID).className += " hide";
}
i++;
}
// show this one
document.getElementById(id).className += " show";
}
我如何称呼它:
<div id="prev"><img src="img/prv.png" onClick="ChangeStep('tabs1'); return false;"></div>
<div id="next"><img src="img/nxt.png" onClick="ChangeStep('tabs2'); return false;"></div>
我要展示/隐藏的分区:
<div id="tabs1" class="hide"><h1>Step 1</h1></div>
<div id="tabs2" class="show"><h1>Step 2</h1></div>
我的Css:
.hide { visibility: hidden; }
.show { visibility: visible; }
基本上我想要做的是:当我单击“下一个”或“上一个”时,通过隐藏所有其他人并显示它来显示相应的“选项卡”。这应该通过添加“隐藏”或“显示”类来完成,具体取决于它是隐藏还是可见。
答案 0 :(得分:6)
您总是附加类名,因此它们(在显示一次之后)将成为show
和hide
类的成员,并且两个规则集都将适用(以正常的级联顺序)。< / p>
如果您不需要维护任何其他类,则可以使用简单的作业替换追加运算符+=
:=
如果您确实需要在元素上维护其他类,则可以使用classList
代替。
document.getElementById(divID).classList.remove('show');
document.getElementById(divID).classList.add('hide');
如果您需要支持Old-IE,那么您可以使用polyfill(可能会在classList
上运行正则表达式)或提供类似功能的API。最常见的JS库(例如YUI和jQuery)内置了一个。