js样式的属性返回空白

js style properties returns blank

本文关键字:返回 空白 属性 样式 js      更新时间:2023-09-26

我正在尝试使用JavaScript接收对象的原始CSS宽度值。但是,如果我使用:

var originalWidth = document.getElementById(<idOfObject>).style.width;

它总是返回空白。我还注意到,使用此语法访问的任何属性都将返回空白。我确信给定的元素存在,因为

alert(document.getElementById(<idOfObject>));

确实向我展示了正确的对象。

有人能帮我解决这个问题吗?

您可能试图获得在样式表中设置的值,而不是直接这样:

document.getElementById(<idOfObject>).style.width = '100px';

如果你想得到元素的宽度,你可以使用innerWidth属性:

var width = document.getElementById(<idOfObject>).offsetWidth;

前面的答案都不对。

您要查找的属性是clientWidth,但不是"样式"

document.getElementById('idOfObject').clientWidth;

这将适用于"宽度"设置与外部css,样式seccion,甚至内联style="宽度:80px"

一般注意:不要使用<div width="500">,因为它对没有影响

上面提到的offsetWidth是第二个最好的选择,但它没有返回css中设置的确切宽度,而是返回宽度加边界宽度

其他选项,比如innerWidth,它可以和窗口对象一起使用,但在div上对我不起作用。

意识到style.width无法正常工作这一奇怪的问题,浪费了我2个小时的宝贵时间:-),希望这个答案能缩短未来任何人的时间。

<div  style="width:10%" id="mydiv" >

<div  style="width:10px" id="mydiv" >
var mydiv = document.getElementById("mydiv");
 var curr_width = mydiv.style.width;
alert(curr_width);

这适用于我

我试过了,可以得到值

http://jsfiddle.net/xyd95/

除非width没有单位

http://jsfiddle.net/xyd95/1/

我相信这将适用于

function getWidth()
{
x = document.getElementById(<idOfObject>)
return x.offsetWidth;
}