JS循环绑定对象或变量
做的一个tab的程序
<div id="topic"> <div id="topictab" class="title"> <ul id="ztdata"> <li id="topicline" class="normal"><a href="/zt/" rel="topicarea" urn="#default_topic"> 专 题 区</a></li> <li class="active"><a href="http://database.ce.cn/district/sy/index.shtml" rel="topicarea" urn="datacenter"> 数据中心</a></li> <li class="active"><a href="http://database.ce.cn/district/sy/index.shtml" rel="topicarea" urn="datacenter"> 数据中心</a></li> </ul> </div> <div class="topicarea"> <div id="ztdata0"> <ul class="floatLi"> <li>11111</li> <li>2222</li> <li>3333</li> </ul> </div> <div id="ztdata1"> 内容2 </div> <div id="ztdata2"> 内容三 </div> </div> </div>
<script type="text/javascript">
function initTab(preName)
{
//设置样式,设置显示
var titleNodes=document.getElementById(preName).getElementsByTagName("li"); //ul的id名称
for(var i=0;i<titleNodes.length;i++)
{
map(titleNodes[i],preName,i);
//titleNodes[i].onmouseover=changetab(preName,i);
//eval("titleNodes[i].onmouseover=function(){changetab(preName,"+i+");};");
}
changetab(preName,0); //显示前面的
}
function map(o,pre,i)
{
o.onmouseover=function(){changetab(pre,i);}
}
function changetab(preName,tabNum)
{
//显示数据内容
var titleNodes=document.getElementById(preName).getElementsByTagName("li"); //ul的id名称
for(var i=0;i<titleNodes.length;i++)
{
if(i==tabNum)
{
document.getElementById(preName+i).style.display="block";
titleNodes[i].className="active";
}
else
{
document.getElementById(preName+i).style.display="none";
titleNodes[i].className="normal";
}
}
}
initTab(“ztdata”);
</script>
解决方法:
一个是用eval
另外一个是在外程定义一个函数。
再一个是订义一个类,类的函数。(第二个类似)