<!--点击按钮,选项卡LI会逐步的递增,点击递增的li下面内容还会继续切换,我现在就做到点击按钮li逐步递增,可是点击li,他不会切换内容,希望大神给我解决一下这个问题??
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{ margin:0; padding:0}
ul{ list-style:none}
#tab{ width:510px; margin:30px auto; border:3px solid #000}
#title{ height:40px;}
#title li{ float:left; height:40px; width:100px; line-height:40px; text-align:center; background:#090; color:#000;
font-size:16px; font-weight:bold; margin-right:2px;margin-bottom:2px; cursor:pointer}
#title li.curLi{ background:#063; color:#fff}
#mains{ width:510px; height:300px; clear:both; overflow:hidden}
#mains ul{ width:510px; height:300px; background:#9C9; display:none}
#mains ul li{ line-height:28px; padding:2px 10px; cursor:pointer}
#mains ul.curUl{ display:block}
.red{ color:red}
.purple{ color:purple}
.gray{ color:gray}
.hover{ color:#FF0}
#oBtn{ display:block; width:200px; height:40px; margin:30px auto; cursor:pointer}
</style>
</head>
<body>
<input type="button" id="oBtn" value="点击按钮逐步增加选项" />
<div id="tab">
<ul id="title">
<li class="curLi">Tab1</li><li>Tab2</li><li>Tab3</li>
</ul>
<div id="mains">
<ul class="curUl">
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
<li>111111111111111111</li>
</ul>
<ul>
<li>2222222222222222222222222222</li>
<li>222222222222222222222222222</li>
<li>2222222222222222222222222222</li>
<li>222222222222222222222222222</li>
<li>2222222222222222222222222222</li>
<li>222222222222222222222222222</li>
<li>2222222222222222222222222222</li>
<li>222222222222222222222222222</li>
</ul>
<ul>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
<li>33333333333333333</li>
</ul>
</div>
</div>
</body>
</html>
<script type="text/javascript">
var oBtn=document.getElementById("oBtn");
oBtn.onclick=function(){
var zLis=document.createElement("li");
var title=document.getElementById("title");
title.appendChild(zLis);
}
var oLis=document.getElementById("title").getElementsByTagName("li");
var oDivs=document.getElementById("mains").getElementsByTagName("ul");
function changeTab(nIndex){
for(var i=0;i<oLis.length;i++){
oLis.item(i).className=null;
oDivs.item(i).className=null;
};
oLis.item(nIndex).className="curLi";
oDivs.item(nIndex).className="curUl";
};
for(var i=0;i<oLis.length;i++){
var oLi=oLis.item(i);
oLi.index=i;
oLi.onclick=function(){
changeTab(this.index);
};
for(var j=0;j<oDivs.length;j++){
var oLis2 = oDivs[j].getElementsByTagName("li");
for(var m=0;m<oLis2.length;m++){
switch(m%3){
case 0:
oLis2[m].className = 'red';
break;
case 1:
oLis2[m].className = 'purple';
break;
default:
oLis2[m].className = 'gray';
};
//鼠标滑过离开改变颜色
oLis2.item(m).onmouseover=function(){
var tmp = this.className;
this.className='hover';
this.onmouseout=function(){
this.className=tmp;
};
};
};
};
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TEst</title> <style type="text/css"> * { margin: 0; padding: 0; } ul { list-style: none; } #tab { width: 510px; margin: 30px auto; border: 3px solid #000; } #title { height: 40px; } #title li { float: left; height: 40px; width: 100px; line-height: 40px; text-align: center; background: #090; color: #000; font-size: 16px; font-weight: bold; margin-right: 2px; margin-bottom: 2px; cursor: pointer; } #title li.curLi { background: #063; color: #fff; } #mains { width: 510px; height: 300px; clear: both; overflow: hidden; } #mains ul { width: 510px; height: 300px; background: #9C9; display: none; } #mains ul li { line-height: 28px; padding: 2px 10px; cursor: pointer; } #mains ul.curUl { display: block; } .red { color: red; } .purple { color: purple; } .gray { color: gray; } .hover { color: #FF0; } #oBtn { display: block; width: 200px; height: 40px; margin: 30px auto; cursor: pointer; } </style> </head> <body> <input type="button" id="oBtn" value="Add" /> <div id="tab"> <ul id="title"> <li class="curLi">Tab1</li> <li>Tab2</li> <li>Tab3</li> </ul> <div id="mains"> <ul class="curUl"> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> <li>111111111111111111</li> </ul> <ul> <li>2222222222222222222222222222</li> <li>222222222222222222222222222</li> <li>2222222222222222222222222222</li> <li>222222222222222222222222222</li> <li>2222222222222222222222222222</li> <li>222222222222222222222222222</li> <li>2222222222222222222222222222</li> <li>222222222222222222222222222</li> </ul> <ul> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> <li>33333333333333333</li> </ul> </div> </div> </body> </html> <script type="text/javascript"> var oBtn=document.getElementById("oBtn"); oBtn.onclick=function(){ var zLis=document.createElement("li"); var title=document.getElementById("title"); title.appendChild(zLis); //添加了TabHeader,也需要添加一个TabContent啊! var mains=document.getElementById('mains'); var newUl=document.createElement('ul'); newUl.innerHTML='<li>我是新选项卡内容</li>'; mains.appendChild(newUl); //还需要注册点击事件 var idx=title.children.length-1;//索引,需要-1 zLis.onclick=function(){ changeTab(idx); }; } var oLis=document.getElementById("title").getElementsByTagName("li"); var oDivs=document.getElementById("mains").getElementsByTagName("ul"); function changeTab(nIndex){ oLis=document.getElementById("title").getElementsByTagName("li"); oDivs=document.getElementById("mains").getElementsByTagName("ul"); for(var i=0;i<oLis.length;i++){ oLis.item(i).className=null; oDivs.item(i).className=null; }; oLis.item(nIndex).className="curLi"; oDivs.item(nIndex).className="curUl"; }; for(var i=0;i<oLis.length;i++){ var oLi=oLis.item(i); oLi.index=i; oLi.onclick=function(){ changeTab(this.index); }; for(var j=0;j<oDivs.length;j++){ var oLis2 = oDivs[j].getElementsByTagName("li"); for(var m=0;m<oLis2.length;m++){ switch(m%3){ case 0: oLis2[m].className = 'red'; break; case 1: oLis2[m].className = 'purple'; break; default: oLis2[m].className = 'gray'; }; //鼠标滑过离开改变颜色 oLis2.item(m).onmouseover=function(){ var tmp = this.className; this.className='hover'; this.onmouseout=function(){ this.className=tmp; }; }; }; }; } </script>
好棒啊!谢谢!嘿嘿可以不可以把新添加的li上面加上Tab5,Tab6.....因为点击出来的都是空白的嘿嘿
亲我想问一下为什么要-1啊!
可以让点击出来li加上Tab几吗嘿嘿新更换的内容也变一下嘿嘿,怎么写那个循环呢!
@xiaoleilei: -1是因为索引是从0开始算的。如果是第四个,那么索引为3。所以需要-1。
如果需要标题,只需要对zLis.innerText="Tab4..."就可以了。
@幻天芒: 如果这样写zLis.innerText="Tab4...",他点击出来都是一样的Tab,怎么让他是Tab4,Tab5,Tab6....还有div的内容也是,怎么是别的呢!不是死的那种?
@xiaoleilei: 你要什么内容就在这个等号后面写了。如果是Tab4这种,你完全可以'Tab'+idx嘛。
@幻天芒: 太谢谢你了,让我学会了灵活变通,嘿嘿感谢
@xiaoleilei: 代码可以多尝试。
这种选项卡功能一定要自己去写么?百度一下,直接搜一个 Juqery选项卡 会有不少现成的。
你这个写得又累又不好!
http://www.51xuediannao.com/js/jquery/jqtab_jj/
这个地址看下吧,像这种功能最好不要自己去写了,有现在的拿过来,学会改。
而且最好也不要去写纯JS了,要学会用Jquery!