function   chgStyle(obj) { 
var ui=document.getElementById("tab1");
// var aTag = ui.getElementsByTagName("li");
// var aTag = document.getElementsByTagName("li");
alert(aTag.length);
    for(var   i=0;i<ui.childNodes.length;i++)   {   
     ui.childNodes[i].firstChild.style.color='#000'; 
     alert(ui.childNodes[i].tagName);
    
    }   
    obj.style.color='#f00';
}
</script>   
<ul id="tab1">
  <li ><a href="#" onclick="chgStyle(this)">111111</a></li> 
  <li ><a href="#" onclick="chgStyle(this)">222222</a></li>
  <li ><a href="#" onclick="chgStyle(this)">333333</a></li>
  <li><a href="#" onclick="chgStyle(this)">444444</a></li>
  <li><a href="#" onclick="chgStyle(this)">555555</a></li>  
 </ul>
改了一哈
现在这个行了,还有你的第一个LI差了一个</a>

解决方案 »

  1.   

    还是不行啊!谢谢再给看一下吧!错误: ui.childNodes[i].firstChild has no properties
      

  2.   

    我又测试了一下,此方法在TT,IE里没问题,在firefox中报错
      

  3.   

    firefox里 两 标记之间的空白处也示为一个节点 例如
    <root>
       <a />
    </root>
    ie下 root下只有一个节点a,但在firefox下有 /n,a,/n 三个节点
    ui.childNodes[i].firstChild 你看看 是不是指向了 空白节点
      

  4.   

    <html>
    <body>
    <style>
    a{text-decoration:none;color:black;}
    a:visited{color:black;}
    a:hover{background-color:pink;color:white}
    a:active{background-color:red;color:white}
    </style><p><a href="#">百度</a></p>
    <p><a href="#">网易</a></p>
    <p><a href="#">新浪</a></p>
    <p><a href="#">搜狐</a></p>
    </body>
    </html>