我正在尝试使用JavaScript接收对象的原始CSS宽度值。但是,如果我使用:
var originalWidth = document.getElementById(<idOfObject>).style.width;
它总是返回空白。我还注意到,使用此语法访问的任何属性都将返回空白。我确信给定的元素存在,因为
alert(document.getElementById(<idOfObject>));
确实向我展示了正确的对象。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:11)
您可能尝试获取样式表中设置的值,而不是像这样:
document.getElementById(<idOfObject>).style.width = '100px';
如果要获取元素的宽度,可以使用innerWidth属性:
var width = document.getElementById(<idOfObject>).offsetWidth;
答案 1 :(得分:11)
以前的答案都不对。
您要寻找的属性是 clientWidth ,但不是“风格”
document.getElementById('idOfObject').clientWidth;
这将适用于使用外部css设置的“width”,样式seccion甚至内联样式=“width:80px”
一般说明:请勿使用<div width="500">
,因为它无效
提到的offsetWidth
是第二个最佳选择,但它不会返回css中设置的确切宽度,但宽度加边框宽度
其他选项如innerWidth
与窗口对象一起使用对我来说对div不起作用。
这个奇怪的问题是style.width
无法正常工作,浪费了2个小时的宝贵时间:-),希望这个答案可以为将来的其他人缩短时间。
答案 2 :(得分:1)
<div style="width:10%" id="mydiv" >
OR
<div style="width:10px" id="mydiv" >
var mydiv = document.getElementById("mydiv");
var curr_width = mydiv.style.width;
alert(curr_width);
这对我有用
答案 3 :(得分:1)
答案 4 :(得分:0)
我相信这会有用
function getWidth()
{
x = document.getElementById(<idOfObject>)
return x.offsetWidth;
}