不好意思!忘了加代码
下面是完整的网页代码,请高手拷贝到写字板一试就知道
<html>
<head><title>树状结构></title></head>
<body>
 <DL>
 <DD><img src="tree-site.gif">软件开发项目管理
 <DL>
 <DD id=a onclick="expand();"><img src="jia.gif" id=a2>调研中
 <DL id=a1 style="display:none">
  <DD>一
  <DD>二
  <DD>三
 </DL>
 <DD id=b onclick="expand();"><img src="jia.gif" id=b2>开发中
 <DL id=b1 style="display:none">
  <DD>四
  <DD>五
  <DD>六
 </DL>
 <DD id=c onclick="expand();"><img src="jia.gif" id=c2>实施
 <DL id=c1 style="display:none">
  <DD>七
  <DD>八
  <DD>九
 </DL>
 </DL>
 </DL>
 <Script language="JavaScript">
 function expand()
 {
     var clickobj ,clickid,targetobj,targetid,imgid,imgobj
     clickobj =window.event.srcElement;
     clickid =clickobj.id;
     targetid =a1
     imgid =clickid+"2";
     imgobj =document.getElementById(imgid);     targetobj =document.getElementById(targetid);
      if (targetobj.style.display =="none")
        {targetobj.style.display =="" ; 
           imgobj.src="jian.gif"; }
      else{ targetobj.style.display =="";
              targetobj.style.display =="none";
              imgobj.src="jia.gif";}
 }
 </Script>
   
</body>
</html>

解决方案 »

  1.   

    <DL >
      <DD > <img src="tree-site.gif" >软件开发项目管理
      <DL >
      <DD id=a onclick="expand();" > <img src="jia.gif" id=a2 >调研中
      <DL id=a1 style="display:none" >
       <DD >一
       <DD >二
       <DD >三
      </DL >
      <DD id=b onclick="expand();" > <img src="jia.gif" id=b2 >开发中
      <DL id=b1 style="display:none" >
       <DD >四
       <DD >五
       <DD >六
      </DL >
      <DD id=c onclick="expand();" > <img src="jia.gif" id=c2 >实施
      <DL id=c1 style="display:none" >
       <DD >七
       <DD >八
       <DD >九
      </DL >
      </DL >
      </DL >
      <Script language="JavaScript" >  
     function expand()
     {
         var clickobj ,clickid,targetobj,targetid,imgid,imgobj
         clickobj =window.event.srcElement;
         if (clickobj.tagName == "img")
         {
            clickobj = clickobj.parentNode;
         }
         clickid =clickobj.id;
       
         targetid =clickid + "1";
         imgid =clickid+"2";
         imgobj =document.getElementById(imgid);
         
         targetobj =document.getElementById(targetid);
          if (targetobj.style.display =="none")
            {
                targetobj.style.display ="block" ;                
               //imgobj.src="jian.gif"; 
            }
          else if(targetobj.style.display =="block")
          {
                  targetobj.style.display ="none";
                  //imgobj.src="jia.gif";
                  }
     }
      </Script > 
      

  2.   

     //imgobj.src="jian.gif"; 
    //imgobj.src="jia.gif"; 前面注释去掉 
      

  3.   

    to Ocean_yang :你修改后的代码是正确的,为何我的不行!
    请解释一下!我刚学习,不明白,请指点!
      

  4.   

    因为你的onclick事件是在DD标签里,但当你点图片时,event就指向图片,所以要判断当目前的event的tagName为IMG时,把window.event.srcElement变成上一级元素parentNode的window.event.srcElement
      

  5.   

    to nicholsky :我理解了!明白了,但是还有疑问:
    1、<DD id=b onclick="expand();"  >  <img src="jia.gif" id=b2  >开发中
    DD标签的范围没有包括图片。2、<DD></DD>包围起来,如果是这样,是不是DD标签的范围就包括图片了。
    <DD id=b onclick="expand();"  >  <img src="jia.gif" id=b2  >开发中</DD>3、如果、<DD></DD>包围起来,DD标签的范围就包括图片了,是不是按照事件冒泡法,也会把onclick传到标签<dd>