请问一段关于javascript的小问题,多谢大师指点!

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:21:29
我建了一个静态页面,body内只有一段代码<div id="kuai" onclick="alert(this.style.height);"></div>,我把"kuai"的样式写在了head标签内,运行时点击这个div弹出一个提示框,但是什么文字也没有,而把样式写进div内时会正常地弹出"50px"的提示。请问这是怎么回事呢?为什么把样式写在div标签外提示框(alert())就显示不出来高度呢?
附:
标签外样式
#{
width:50px;
height:50px;
background-color:#000000;
}

改称标签内(好像叫内联样式吧)时
<div id="kuai" style="width:50px; height:50px; background-color:#000000;" onclick="alert(this.style.height);"
请大师赐教,不胜感激!
testA.html
<html>
<head>
<title>testA</title>
<style type="text/css">
<!--
#kuai{
width:50px;
height:50px;
background-color:#000000;
}
-->
</style>
</head>
<body>
<div id="kuai" onclick="alert(this.style.height)"></div&

head 是在body之前加载的.

你放在head里, js运行时,div还没有被加载, this的值是null.所以显示不出来

而且你样式表声明也有问题, 应该是 #kuai{ 样式1,样式2}

你的描述很不清楚,不知道是不是我理解得不对,实在不行,你把你的页面从<head>和<body>里的内容全贴出来,我100%可以解决你的问题.

//看了你的源码,我说明一下----------------------------------------------------------------
在在样式表里定义的width, heigth. 是定义的 OffsetWidth,OffsetHeight

而你用 style="width:50px; height:50px" 这样定义时,不仅定义了OffsetWidth,OffsetWidth, 还定义了 style.width style.height.

你用alert(this.OffsetWidth).就可以了.
不过为什么会出现这个问题,我还真不知道.研究下Dhtml的css定义可能可以找出答案吧.

alert(this.currentStyle.width);

我也是刚学会的。

完整的

<style type="text/css">
#kuai{
width:50px;
height:50px;
background-color:#000000;
}
</style>
<div id="kuai" onclick="alert(this.currentStyle.width);">121212</div>

不是你说的这样,你已经看到他的背景色了,难道没加载吗?
再说你把style放到div后面也是一样的效果~!