<style type="text/css">
#thebar
{
top:10px;
left:200px;
width:40px;
cursor:hand;
position:absolute;
background:#808080;
height:100%;
}
</style>
<script>
function kk()
{
var obj = document.getElementById("thebar"); 
document.all.ss.value = obj.offsetWidth; 
alert(obj.id);
alert(obj.offsetWidth);
}
</script>
<div id="thebar" onclick="kk()">sssss</div>
<input type="text" name="ss" value="" />

解决方案 »

  1.   

    非常感谢,请问为什么不能用.style.width呢?
    我是想如何get和set这个"thebar"对象在<style>里定义的属性
      

  2.   

    //这样就行了
    var par=document.styleSheets[0].rules.item(0).style.width;
    alert(par);
      

  3.   

    <script>
    function kk()
    {
      var obj   = document.getElementById("thebar"); 
      var style = obj.currentStyle||obj.style
      alert(style.width);
    }
    </script>
      

  4.   

    obj.currentStyle.width
    照您的方法只能在ie下显示,fireFox提示说没有这个方法
      

  5.   

    我用FF2.0做了测试显示的是空,经过测试FF不支持.currentStyle或.style这是测试代码:
    <style type="text/css">
    #thebar
    {
    top:10px;
    left:200px;
    width:30px;
    cursor:hand;
    position:absolute;
    background:#808080;
    height:100%;
    }
    </style><script>
    function kk()
    {
    var obj = document.getElementById("thebar"); 
    alert(obj.id);
    var style = obj.currentStyle||obj.style;
    alert(style.width);
    }
    </script><div id="thebar" onclick="kk()">click</div>
      

  6.   

    只能取到.style这样内嵌样式的属性
      

  7.   

    当然是显示为空了,因为你没有明文在对象里赋 style.width ,但这并不代表 obj.currentStyle||obj.style; 有错。
      

  8.   

    懂了,您的意思是说除非我在那个div里直接写上它的宽度才能取到我是想通过var obj = document.getElementById("thebar"); 取到的这个元素,
    再通过这个元素取到<style></style>里定义的#thebar的width
    请问这样有办法实现吗?另外我想我可能是概念错了,可能把这个理解成对象了,如果说<div id="thebar">和<style></style>是两码事,那么怎么通过js获得<style></style>标签里定义的值呢?比如说#thebar,#thebar下的width