为什么javascript样式属性不能按预期工作? #哇{ 边框:10px纯红; 宽度:20px; 高度:20px; } var val=document.getElementById(“wow”); 警报(val.style.length);

为什么javascript样式属性不能按预期工作? #哇{ 边框:10px纯红; 宽度:20px; 高度:20px; } var val=document.getElementById(“wow”); 警报(val.style.length);,javascript,Javascript,这是我的代码,为什么val.style.length0?因为我定义了3个属性,所以我希望它是3个元素的样式属性只反映内联样式。它本质上是获取(实际上是设置)内联样式的一种方式 发件人: [code>style属性]对于了解元素的一般样式没有用处,因为它只表示元素的内联样式属性中设置的CSS声明,而不是来自其他地方的样式规则(例如节中的样式规则)或外部样式表的CSS声明 您可以使用窗口获取应用于元素的所有样式。getComputedStyle(元素): 但是,这可能无法满足您的需要,因为它提供了元

这是我的代码,为什么
val.style.length
0?因为我定义了3个属性,所以我希望它是3个元素的
样式
属性只反映内联样式。它本质上是获取(实际上是设置)内联样式的一种方式

发件人:

[code>style属性]对于了解元素的一般样式没有用处,因为它只表示元素的内联样式属性中设置的CSS声明,而不是来自其他地方的样式规则(例如节中的样式规则)或外部样式表的CSS声明

您可以使用
窗口获取应用于元素的所有样式。getComputedStyle(元素)


但是,这可能无法满足您的需要,因为它提供了元素上的所有样式属性,即使它们仍然是默认的。在我的浏览器(Chrome,FWIW)中,这意味着它总是返回
285
。这不应该令人惊讶。浏览器有一个“内置”样式表,它毕竟为所有元素提供了默认值。

您的意思是它应该是3,因为您在#wow{}中设置了3属性?元素上没有
style
属性,因此元素的DOM对象中的style对象中没有任何内容。
style.length
仅适用于内联样式。他说得对了一半,
.style
属性只反映了
style
属性的状态,没有从样式表继承的内容。您能描述一下为什么需要这样做吗?
<html>
   <head>
       <style type="text/css">
       #wow{
          border : 10px solid red;
          width: 20px;
          height: 20px;

       }
       </style>
   </head>
   <body>
      <div id="wow"></div>
      <script>
        var val = document.getElementById("wow");
        alert(val.style.length);
      </script>
   </body>
</html>
alert(window.getComputedStyle(val).length);