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>请问下大家这里哪里出错了
{
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>请问下大家这里哪里出错了
<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>
我这里改成
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还是什么原因
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>
答:“不是”你那样写写之后obj就表示对象的display的引用,你更改这个引用之后,不会对原来对象产生变化
因为我是新手所以还有个问题想问下你
我在有些地方看到做这个树型还要加这句话后面是什么,记不清啦
希望能你能教我下
document.getElementsByTagName('ul')[0]
实现一个功能的方法很多 都是殊途同归 自己有思路是最好的 我没树就必须要这句话 我只能给你解析下
document.getElementsByTagName('ul')[0]// 获取tag标签为UL数组的第一个元素
对应到你上面的HTML 其实也就是id为menu1的那个UL