html:
<!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" lang="zh-cn">
<head>
<title>树结构 </title>
<link type="text/css" rel="stylesheet" href="css/css4cnltreemenu.css" />
<script type="text/javascript" src="js/js4cnltreemenu.js"></script>
</head>
<body><!--CNLTreeMenu Start:-->
<div class="CNLTreeMenu" id="CNLTreeMenu1">
<p><a id="AllOpen_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(0);Hd(this);Sw('AllClose_1');">全部展开</a><a id="AllClose_1" href="#" onclick="MyCNLTreeMenu1.SetNodes(1);Hd(this);Sw('AllOpen_1');" style="display:none;">全部折叠</a></p>
<ul>
  <li class="Opened"><a href="####">树根</a>
  <ul>
    <li><a href="#1">技术区</a>
  <ul>
       <li><a href="#">网页技术</a>
    <ul>
     <li class="Child"><a href="http://www.baidu.com">百度</a></li><!--Child Node-->
     <li class="Child"><a href="#">HTML/XHTML/CSS</a></li>
     <li class="Child"><a href="http://www.codefans.net">Ajax</a></li>
     <li class="Child"><a href="#">网页制作工具</a></li>
     <li class="Child"><a href="#">设计/图形</a></li>
     <li class="Child"><a href="#">Flash/多媒体</a></li>
     <li class="Child"><a href="#">VML/Web3D</a></li>
    </ul></li><!--Sub Node 3-->
      
       
     </ul></li><!--Sub Node 2-->
   
  
</ul>
</div><!-- CNLTreeMenu -->
<!--CNLTreeMenu1 End!-->
<script type="text/javascript">
<!--
var MyCNLTreeMenu1=new CNLTreeMenu("CNLTreeMenu1","li");
MyCNLTreeMenu1.InitCss("Opened","Closed","Child","css/s.gif");var MyCNLTreeMenu2=new CNLTreeMenu("CNLTreeMenu2","li");
MyCNLTreeMenu2.InitCss("Opened","Closed","Child","css/s.gif");var MyCNLTreeMenu3=new CNLTreeMenu("CNLTreeMenu3","li");
MyCNLTreeMenu3.InitCss("Opened","Closed","Child","css/s.gif");
-->
</script>
</body>
</html>
js文件
function Ob(o){
 var o=document.getElementById(o)?document.getElementById(o):o;
 return o;
}
function Hd(o) {
 Ob(o).style.display="none";
}
function Sw(o) {
 Ob(o).style.display="";
}
function ExCls(o,a,b,n){
 var o=Ob(o);
 for(i=0;i<n;i++) {o=o.parentNode;}
 o.className=o.className==a?b:a;
}
function CNLTreeMenu(id,TagName0) {
  this.id=id;
  this.TagName0=TagName0==""?"li":TagName0;
  this.AllNodes = Ob(this.id).getElementsByTagName(TagName0);
  this.InitCss = function (ClassName0,ClassName1,ClassName2,ImgUrl) {
  this.ClassName0=ClassName0;
  this.ClassName1=ClassName1;
  this.ClassName2=ClassName2;
  this.ImgUrl=ImgUrl || "css/s.gif";
  this.ImgBlankA ="<img src=\""+this.ImgUrl+"\" class=\"s\" onclick=\"ExCls(this,'"+ClassName0+"','"+ClassName1+"',1);\" alt=\"展开/折叠\" />";
  this.ImgBlankB ="<img src=\""+this.ImgUrl+"\" class=\"s\" />";
  for (i=0;i<this.AllNodes.length;i++ ) {
   this.AllNodes[i].className==""?this.AllNodes[i].className=ClassName1:"";
   this.AllNodes[i].innerHTML=(this.AllNodes[i].className==ClassName2?this.ImgBlankB:this.ImgBlankA)+this.AllNodes[i].innerHTML;
   }
 }
 this.SetNodes = function (n) {
  var sClsName=n==0?this.ClassName0:this.ClassName1;
  for (i=0;i<this.AllNodes.length;i++ ) {
   this.AllNodes[i].className==this.ClassName2?"":this.AllNodes[i].className=sClsName;
  }
 }
}
js中的this.AllNodes = Ob(this.id).getElementsByTagName(TagName0);这行代码老是提示对象不支持此属性或方法    
这是一个树结构   可以运行的   但就是有错误 想解决一下      请高手帮忙

解决方案 »

  1.   


    var MyCNLTreeMenu2=new CNLTreeMenu("CNLTreeMenu2","li");
    MyCNLTreeMenu2.InitCss("Opened","Closed","Child","css/s.gif");var MyCNLTreeMenu3=new CNLTreeMenu("CNLTreeMenu3","li");
    MyCNLTreeMenu3.InitCss("Opened","Closed","Child","css/s.gif");把这面这些代码删了就好了。在你的文件里没有CNLTreeMenu2, CNLTreeMenu3 这2个标签,就出错了.
      

  2.   

    错误在这行    this.AllNodes = Ob(this.id).getElementsByTagName(TagName0);
      

  3.   

    Free_Wind22
    不是那个错误    
      

  4.   


    +1lz的HTML标签中,确实没看到有id为CNLTreeMenu2和CNLTreeMenu3的标签。