论坛首页 AJAX版 JavaScript

style.display取值不对,难道是浏览器bug?

浏览 2029 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-11-15
这么简单的一段代码
<style>#div1 {display:none}</style>
<div id="div1">...</div>
<script language="javascript">
alert(document.getElementById("div1").style.display);
</script>


很奇怪,我在样式中明明定义了display值“none”,但javascript获取到的却是为空值,高手求解
   
最后更新时间:2007-11-15
通过element.style对象只能取得内联的样式,也就是说只能取得直接写道html标签里写的属性。
   
0 请登录后投票
最后更新时间:2007-11-15
但如果将样式放在div里定义,就没有这个问题,奇怪。
<div id="div1" style="display:none">...</div>
<script language="javascript">
alert(document.getElementById("div1").style.display);
</script>
   
0 请登录后投票
最后更新时间:2007-11-15
因为定义的STYLE不是INLINE的....

<div id="div1" style="display:none">...</div>  就可以了
   
0 请登录后投票
最后更新时间:2007-11-15
谢谢笨笨狗和niuyuewanzi ,又学了一招。

但总觉得浏览器很弱智,这个都获取不到
   
0 请登录后投票
最后更新时间:2007-11-15
你去 google 搜索 currentStyle
然后再骂浏览器弱智 OK????
   
0 请登录后投票
最后更新时间:2007-11-15
这应该是CSS+JAVASCRIPT中比较重要的一部分...
   
0 请登录后投票
最后更新时间:2007-11-15
fins 写道
你去 google 搜索 currentStyle
然后再骂浏览器弱智 OK????



只能IE...MOZILLA需要这样做:document.defaultView.getComputedStyle(a,null).getPropertyValue("display")
   
0 请登录后投票
最后更新时间:2007-11-15
fins 写道
你去 google 搜索 currentStyle
然后再骂浏览器弱智 OK????



谢谢指点
   
0 请登录后投票
最后更新时间:2007-11-15
niuyuewanzi 写道
fins 写道
你去 google 搜索 currentStyle
然后再骂浏览器弱智 OK????



只能IE...MOZILLA需要这样做:document.defaultView.getComputedStyle(a,null).getPropertyValue("display")







如果需要辨别非INLINE的STYLE,大概可以这样:

function getMyStyle(elementId,styleName)
{
	var el = document.getElementById(elementId);
	if (el.currentStyle)
		var y = el.currentStyle[styleName];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleName);
	return y;
}
   
0 请登录后投票
论坛首页 AJAX版 JavaScript

跳转论坛:
JavaEye推荐