ul的display:block设置问题

lanyumeng 2012-05-18 01:51:58
<div onclick="myrelease();" id="title"><a>我的发布</a></div>
<ul id="release_left" style="display:block;">
<li><a href="最近上传.html" class="over">最近上传</a></li>
<li><a href="显示中信息.html">显示中的信息</a></li>
<li><a href="审核中信息.html">审核中的信息</a></li>
<li><a href="已删除信息.html">已删除的信息</a></li>
</ul>

function myrelease(){
var div = document.getElementById("release_left");
alert(div.style.display);
if (div.style.display == "block" ){
div.style.display = "none";
}else if(div.style.display == "none"){
div.style.display = "block";
}
}

想实现二级收缩菜单功能,为什么<ul id="release_left" style="display:block;">中的display:block,写在样式表中无效。

...全文
450 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
001007009 2012-05-18
  • 打赏
  • 举报
回复
是这样的,楼主,
dom.style 只能取到行内的css, 也就是只能取到 style="这里的css"
要想取到<style></style>中或者 外联的css样式,需要"计算"来取得css

参考下


<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312" />
<title></title>
<style>
</style>
</head>
<body>
<button id="btn">弹出层</button>
<script>
function $(o){return document.getElementById(o)}

var css = function(obj, attr, value){
switch(arguments.length){
case 2:
//二个参数, 如果第二个参数是对象, 批量设置属性
if(typeof attr == 'object'){
for(var i in attr){
obj.style[i] = attr[i];
}
}
//二个参数, 如果第二个参数是字符串, 读取属性值
else{
return obj.currentStyle? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr];
}
break;
case 3:
//三个参数, 单一设置属性
obj.style[attr] = value;
break;
default:
alert('参数有误!');
}
}
var o = $('btn');

alert( css(o, 'fontSize') )

css(o, {
fontSize: 123+'px',
color: 'red'
})

</script>
</body>
</html>


一秒L 2012-05-18
  • 打赏
  • 举报
回复
有的浏览器不支持block,直接设成空试试,
叶飘尾 2012-05-18
  • 打赏
  • 举报
回复


<html><head></head><body>

<div onclick="myrelease();" id="title"><a>我的发布</a></div>
<ul id="release_left" style="display:block;">
<li><a href="最近上传.html" class="over">最近上传</a></li>
<li><a href="显示中信息.html">显示中的信息</a></li>
<li><a href="审核中信息.html">审核中的信息</a></li>
<li><a href="已删除信息.html">已删除的信息</a></li>
</ul>
<script>
function myrelease(){
var div = document.getElementById("release_left");
alert(div.style.display);
if (div.style.display == "block" ){
div.style.display = "none";
}else if(div.style.display == "none"){
div.style.display = "block";
}
}
</script>
</body></html>

以上代码本人测试过了没问题,看你的了
一起混吧 2012-05-18
  • 打赏
  • 举报
回复
div.style 是获取div的style属性的。你写在样式表中当然获取不到拉。
我看这样就挺好。不要再给自己找麻烦了。
interceptor2012 2012-05-18
  • 打赏
  • 举报
回复
二级菜单?
三石-gary 2012-05-18
  • 打赏
  • 举报
回复
想要什么样的效果

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧