例如,
<html>
<head><link rel="stylesheet" type="text/css" href="theme.css"></head>
<body>
<img id="tmp"></img>
</body>
</html>
在theme.css中
img#tmp{
width:120px;
top:0;
left:0;
}
无论如何,我可以直接通过JavaScript获取图像“tmp”的宽度吗?像什么一样的东西
var temp=document.getElementById("tmp"); var width=temp.style.width
?
答案 0 :(得分:0)
你肯定会想要JQuery的帮助。 Here是所有JQuery函数的列表,可以帮助您访问所需的所有样式信息(希望如此)。
顺便说一句,如果你不熟悉某种Javascript库,那么学习它可能是一个好主意。
答案 1 :(得分:0)
我是第二个Nadir的动议,但在您的直接示例中,您可以将代码更改为:
var temp=document.getElementById("tmp");
var width=temp.style.width;
在您自己的示例中,您通过复数使用了错误的getElementById。
This comment总结了原因。
答案 2 :(得分:0)
你所追求的是元素的计算风格。像往常一样,IE6-8的表现方式不同,所以我们需要做一些嗅探:
var getStyle = window.getComputedStyle ? function (elem, prop) {
var styles = getComputedStyle(elem, null);
return prop ? styles[prop] : styles;
} : function (elem, prop) {
return prop ? elem.currentStyle : elem.currentStyle[prop];
};
答案 3 :(得分:0)
你走了:
getComputedStyle( elem ).getPropertyValue( 'width' )
其中elem
是DOM元素。
现场演示: http://jsfiddle.net/7h4cg/
顺便说一下,某些浏览器的某些旧版本不支持此代码。如果您需要跨浏览器解决方案,请使用跨浏览器库。
答案 4 :(得分:0)
这是我的跨浏览器内联函数:
function getComputedStyle(elem, styleAttr){
return (elem.currentStyle ? elem.currentStyle : document.defaultView.getComputedStyle(elem, null))[styleAttr];
}
答案 5 :(得分:0)
有些浏览器会返回文字样式的宽度和高度,因为它是在css中写成的pecentage或em multiple,而其他浏览器则将所有样式尺寸转换为像素。
在这种情况下,我会使用document.getElementById('tmp').offsetWidth
来确保以像素为单位获取渲染宽度,无论它是如何分配的。