Свойства стиля JS возвращает пустое - PullRequest
10 голосов
/ 03 июня 2011

Я пытаюсь получить исходное значение ширины CSS объекта с помощью JavaScript.Однако, если я использую:

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

Всегда возвращается пустым.Я также заметил, что любое свойство, к которому я обращаюсь, используя этот синтаксис, будет возвращаться пустымЯ точно знаю, что данный элемент существует, поскольку

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

действительно показывает мне нужный объект.

Может кто-нибудь помочь мне решить эту проблему?

Ответы [ 5 ]

11 голосов
/ 26 июля 2012

Ни один из предыдущих ответов не был прав.

Требуемое свойство clientWidth , но не в стиле "*" 1005 *

document.getElementById('idOfObject').clientWidth;

, которое будет работать как на "ширине", заданной с помощью внешнего CSS, стиляseccion или даже inline style = "width: 80px"

Общее примечание: не используйте <div width="500">, поскольку это не имеет никакого эффекта

Упомянутый offsetWidth является вторым лучшим выбором, ноон не возвращает точную ширину, заданную в css, но эта ширина плюс ширина границы

Другие параметры, например innerWidth, работающие с объектами окна, не работают для меня в div.

Этостранный вопрос о том, что style.width не работает должным образом, потратил впустую 2 часа моего драгоценного времени :-), надеюсь, этот ответ сократит это время для всех остальных в будущем.

11 голосов
/ 03 июня 2011

Вы, вероятно, пытаетесь получить значение, которое было установлено в таблице стилей, а не прямо так:

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

Если вы хотите получить ширину элемента, вы можете использовать свойство innerWidth:

var width = document.getElementById(<idOfObject>).offsetWidth;
1 голос
/ 03 июня 2011

Я попробовал это, и я могу получить значение

http://jsfiddle.net/xyd95/

Хорошо, если width не имеет единицы измерения

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

1 голос
/ 03 июня 2011
<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);

Это работает для меня

0 голосов
/ 03 июня 2011

Я верю, что это будет работать

function getWidth()
{

x = document.getElementById(<idOfObject>)
return x.offsetWidth;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...