TAB选项卡的HTML代码如下
<div id="demoTab" class="demoTab">
<div class="demoTabHd">
<ul id="item_ul" class="demoTabNav clearfix" >
<li id="item1" class="demoTabList current_li">前端</li>
<li id="item2" class="demoTabList">实战</li>
<li id="item3" class="demoTabList">交互</li>
<li id="item4" class="demoTabList">优化</li>
</ul>
</div>
<div class="demoTabBd">
<div class="roundBox">
<div id="content1" class="demoTabContent current">这是第一个选项卡的内容。</div>
<div id="content2" class="demoTabContent">这是第二个选项卡的内容。</div>
<div id="content3" class="demoTabContent">这是第三个选项卡的内容。</div>
<div id="content4" class="demoTabContent">这是第四个选项卡的内容。</div>
</div>
</div>
</div>
CSS代码:
.demoTab{width: 600px;font-size: 18px;margin:10px auto;display: block;}
.demoTabHd{margin-bottom: -1px;border:1px solid #6c92ad;border-bottom: none;background-color: lightblue;}
.demoTabNav{overflow: hidden;*zoom:1;text-align: center;}
.demoTabList{height:28px;float:left;margin-left: -1px;padding:0 25px;border-left: 1px solid #6C92AD;border-right:1px solid #6C92AD; color:#005590; cursor:pointer;font-weight: bold;list-style: none;line-height: 28px;}
.demoTabNav .current_li{position:relative; background-color:#fff;}
.demoTabBd{border:1px solid #6c92ad;}
.roundBox{padding: 5px 20px;}
.demoTabContent{display: none;}
.roundBox .current{display: block;}
纯js实现TAB选项卡
var items = [], name="item",item_ul;
item_ul=document.getElementById("item_ul");
items=item_ul.getElementsByTagName("li");
var len = items.length;
for(var j=0;j <len;j++){
(function(k){ //此处用到了闭包
items[k].οnclick=function(){
setTab("item",k+1,len);
}
})(j);
}
function setTab(name,m,n){
for( var i=1;i<=len;i++){
itemi = document.getElementById(name+i);
contenti= document.getElementById("content"+i);
itemi.className = i==m ?"demoTabList current_li":"demoTabList";
contenti.style.display = i==m?"block":"none";
}
}
由于本人是个强迫症患者,不能忍受在html元素中添加事件
所以就尝试用for循环绑定click事件,用到闭包才绑定成功。