<!--
function showtree(str)//展开|关闭子分支
{
oEle= document.getElementsByName("ttt");
for(var i = 0 ;i<oEle.length;i++){
alert(oEle[i].style.display);
if (oEle[i].style.display="none") 
{
alert("开放");
oEle[i].style.display="";
}else if (oEle[i].style.display="") 
{
alert("进入隐藏");
oEle[i].style.display="none";
}
}
}
-->
<div onClick="showtree('ttt')">
直辖市 </div>
<div id="ttt"  style="display:none">
<div>
北京(京)
</div>
<div>
上海(沪)
</div>
</div>
<div id="ttt"  style="display:none">
<div>
北京(京)
</div>
<div>
上海(沪)
</div>
</div>问题:原本2个菜单隐藏,点击"直辖市"后,可出现,正常.
但,再点击不能隐藏,原因:oEle[i].style.display的值仍然为none,
为什么呀,上次我明明已经改为空了,都显示出来了,这次怎么还是none呀?
附注释:因为某种原因,我的2个div的id必须同名.

解决方案 »

  1.   


    function showtree(str)//展开|关闭子分支 

    oEle= document.getElementsByName("ttt"); 
    for(var i = 0 ;i <oEle.length;i++){ 
    if (oEle[i].style.display=="none") 

    oEle[i].style.display=""; 
    }else if (oEle[i].style.display=="") 

    oEle[i].style.display="none"; 



      

  2.   

    else if (oEle[i].style.display="") 

    alert("进入隐藏"); 
    oEle[i].style.display="none"; 

    去掉if (oEle[i].style.display=="")或改为if (oEle[i].style.display=="block")