我的功能:
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";
}
Run Code Online (Sandbox Code Playgroud)
我怎么称呼它:
<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>
Run Code Online (Sandbox Code Playgroud)
我要显示/隐藏的Div:
<div id="tabs1" class="hide"><h1>Step 1</h1></div>
<div id="tabs2" class="show"><h1>Step 2</h1></div>
Run Code Online (Sandbox Code Playgroud)
我的Css:
.hide { visibility: hidden; }
.show { visibility: visible; }
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是:当我单击"下一个"或"上一个"时,通过隐藏所有其他人并显示此对话来显示相应的"选项卡".这应该通过添加类"隐藏"或"显示"来完成,具体取决于它是隐藏还是可见.
您总是附加类名,因此它们(在显示一次之后)将成为两个show和hide类的成员,并且两个规则集都将应用(以正常的级联顺序).
如果您不需要维护任何其他类,则可以+=使用简单的赋值替换append运算符:=
如果确实需要在元素上维护其他类,则可以使用classList.
document.getElementById(divID).classList.remove('show');
document.getElementById(divID).classList.add('hide');
Run Code Online (Sandbox Code Playgroud)
如果您需要支持Old-IE,那么您可以使用polyfill(可能会运行regex classList)或提供类似功能的API.最常见的JS库(例如YUI和jQuery)内置了一个.