我指定了一个ID为testBox的div:
<div id="testBox"></div>
并在头部区域设置样式:
#testBox {
background: red;
width: 25px;
height: 25px;
left: 0;
top: 0;
}
然后在身体的底部,我把JS:
var box = document.getElementById("testBox");
console.log(box.style.left);
console.log(box.style.width);
在FireFox中使用FireBug,但它只是告诉我:
这是一个空字符串......
但是当我将样式信息放在div标签中时:
<div id="testBox" style="background: red;width: 25px;height: 25px;"></div>
然后JS可以完成它的工作,检索我想要的所有信息
所以这是将样式信息全部内联到内联的唯一方法,或者我只是想念一些东西,毕竟我只是JS和DOM的新手....
答案 0 :(得分:1)
您可以尝试getComputedStyle()。它给出了元素的所有CSS属性的最终使用值。
var box = document.getElementById("testBox");
var style=window.getComputedStyle(box);
console.log("Height : " + style["height"]);
console.log("Width : " + style["width"]);
console.log("Left : " + style["left"]);
答案 1 :(得分:0)
当您说box.id
返回给您的是您在html中声明的box元素的id
属性。
当您说box.style
时,您正在访问也是基于您的标记创建的javascript对象。
创建样式属性的dom表示时,不使用未内联定义的样式属性。
这是article突出显示此行为。
但是,如果您使用像jQuery这样的库,则可以
$(function(){alert($("#textBox").css("width"));});
这将为您提供css值。
更新:
感谢AVD让我指出了正确的方向: 这是一种使用他的解决方案的方法,但增加了对IE的支持。 9:
var box = document.getElementById("testBox");
var style = window.getComputedStyle ? window.getComputedStyle(box) : box.currentStyle;
alert("Height : " + style["height"]);
alert("Width : " + style["width"]);
alert("Left : " + style["left"]);
这是fiddle。