function tree(id)
{   
var obj=document.getElementById(id)
             obj.style.display=(style.display=="block")?"none":"block";
}         <ul>
<li onclick="tree(menue1);">目录一
<ul id="menue1" style="display:none;">
<li>目录1</li>
<li>目录2</li>
<li>目录3</li>
<li>目录4</li>
</ul>
</li>
<li>目录二
</li>
</ul>请问下大家这里哪里出错了

解决方案 »

  1.   


    <script type="text/javascript">
    <!--
    function tree(id) 
    {  
    var obj=document.getElementById(id);
    obj.style.display = obj.style.display == "block" ? "none" : "block"; 

    //-->
    </script><ul> 
    <li onclick="tree('menue1')">目录一 
    <ul id="menue1" style="display:none;"> 
    <li>目录1 </li> 
    <li>目录2 </li> 
    <li>目录3 </li> 
    <li>目录4 </li> 
    </ul> 
    </li> 
    <li>目录二 
    </li> 
    </ul> 
      

  2.   

    谢谢
      我这里改成
    function tree(id)
    {   
    var obj=document.getElementById(id).style.display;
     // document.getElementsByTagName('ul')[0].
    obj = obj == "block" ? "none" : "block"; 
    }
    为什么就不行呢?是不是var obj=document.getElementById(id).style.display;
    后面不能有.style.display还是什么原因
      

  3.   


    function tree(id) 
    {  
    var obj = document.getElementById(id);
        var style = document.getElementById(id).style.display;
    alert(style.constructor === String)// style返回的是字符串 所以不是属性 所以不能用来设置属性
        obj.style.display = style == "block" ? "none" : "block"; 

    //-->
    </script>
      

  4.   

    ? “是不是”
    答:“不是”你那样写写之后obj就表示对象的display的引用,你更改这个引用之后,不会对原来对象产生变化
      

  5.   

      非常感谢你再次回答我的问题
         因为我是新手所以还有个问题想问下你
         我在有些地方看到做这个树型还要加这句话后面是什么,记不清啦
          希望能你能教我下
           document.getElementsByTagName('ul')[0]
      

  6.   


    实现一个功能的方法很多 都是殊途同归 自己有思路是最好的 我没树就必须要这句话 我只能给你解析下
    document.getElementsByTagName('ul')[0]// 获取tag标签为UL数组的第一个元素
    对应到你上面的HTML 其实也就是id为menu1的那个UL