html:
<div id="left">
<ul id="lu">
<li id="unch"><img src="image/biao.gif"/> 软件产品</li>
<li class="personnel" onclick="go_to(1)">portal产品</li>
<li class="personnel1" onclick="go_to(2)">BI产品</li>
<li class="personnel" onclick="go_to(3)" >增值软件产品</li>
</ul>
</div>js:
<script>
//<!--
var l=document.getElementById("lu").childNodes;
var d=document.getElementById("right").childNodes;
function go_to(ao){
for(var i=0;i<d.length;i++){
if(ao==i+1){
l[ao].className="personnel1";
d[i].className="";
d[i].className="bock";
}
else{
l[i+1].className="personnel";
d[i].className="";
}
} }
//-->
</script>
<div id="left">
<ul id="lu">
<li id="unch"><img src="image/biao.gif"/> 软件产品</li>
<li class="personnel" onclick="go_to(1)">portal产品</li>
<li class="personnel1" onclick="go_to(2)">BI产品</li>
<li class="personnel" onclick="go_to(3)" >增值软件产品</li>
</ul>
</div>js:
<script>
//<!--
var l=document.getElementById("lu").childNodes;
var d=document.getElementById("right").childNodes;
function go_to(ao){
for(var i=0;i<d.length;i++){
if(ao==i+1){
l[ao].className="personnel1";
d[i].className="";
d[i].className="bock";
}
else{
l[i+1].className="personnel";
d[i].className="";
}
} }
//-->
</script>
解决方案 »
- JqueryIE6的问题
- 怎样让一个层在不同分辨率的显示器上都居中显示
- 某个字段的内容自动跳转到不同的网页的程序该怎么做?
- 数据的处理?
- 这样的情况怎么传值
- 超链接 鼠标移入 出现div 鼠标移除 div消失
- 为什么第一次点击后得到innerText的值,但链接处却不会变?
- 求教有关document.all.tags("td")及tableid的所有操作对象和方法.
- 如何在A.ASP中关闭B.ASP?在线等待。
- js怎样将一组二进制字符串101110100转换为二进制值,进而转换为十进制值?
- js改变下拉框的selectIndex后,页面没有改变,但实际上selectIndex已经改变了,这是为什么??
- [百度分享]初探 jQuery 的 Sizzle 选择器(一)
所以实际上 l[1] 是个空白节点,它是没有className属性的,所以报错
我建议判断下nodeType
或者干脆叫找指定的 标签
其中"right"是那个元索的ID,我在FF里测试了,如果把right换成id为left测试没有报错.
<script>
//<!--
var l=document.getElementById("lu").childNodes;
var d=document.getElementById("right").childNodes;
function go_to(ao){try{
for(var i=0;i<d.length;i++){
if(ao==i+1){
l[ao].className="personnel1";
d[i].className="";
d[i].className="bock";
}
else{
l[i+1].className="personnel";
d[i].className="";
}
}
}
catch(e){
var msg="";
for(i in e){
msg+=i+":"+e[i]+"\n";
}
alert(msg);//出现错误,看看错误信息是什么,然后再发出来大家帮你解决
}
}
//-->
</script>
//<!--
var l=document.getElementById("lu").childNodes;
var d=document.getElementById("right").childNodes;
function go_to(ao){try{
for(var i=0;i<d.length;i++){
if(ao==i+1){
l[ao].className="personnel1";
d[i].className="";
d[i].className="bock";
}
else{
l[i+1].className="personnel";
d[i].className="";
}
}
}
catch(e){
var msg="";
for(i in e){
msg+=i+":"+e[i]+"\n";
}
alert(msg);//出现错误,看看错误信息是什么,然后再发出来大家帮你解决
}
}
//-->
</script>
正确第一次遍历
火狐中 空格和 回车都是一个新的节点
在IE中 是 < > 为一个节点
第二次遍历就不会出现了建议参考http://wenku.baidu.com/view/046be91cfad6195f312ba69b.html