2014-01-23 5 views
2

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

Мой InputElement является верхний уровень, поэтому у меня есть:

InputElement nameBox = querySelector("#nameBox"); 

Позже в main(), у меня есть:

var width = querySelector("#nameBox").style.width; 

После этой линии, width всегда "" вместо ожидаемого "149px" , Однако присвоение этому stlye.width обновляет ширину ...

Любая идея, почему это так? Я понимаю, что Dart's main() не запускается до загрузки DOM, поэтому не уверен, почему это не работает. Кстати, ширина 149px по умолчанию - я ее не изменил.

+0

Это не имеет никакого отношения при запуске main(). QuerySelector вернет null, если элемент не был там (DOM не загружен). –

+0

Я могу воспроизвести в Dartium и Firefox. –

ответ

4

.style.width не возвращает вычисленную ширину, но ширину, назначенную атрибуту style элемента (<input style="width:200px"/>). Если вы хотите получить реальную ширину, вы можете использовать Element.clientWidth.

+0

Я действительно нашел способ решить это, пришел сюда, чтобы опубликовать его, и увидел, что этот ответ уже опубликован. 'Element.clientWidth' работал, я фактически использовал' Element.scrollWidth'. Единственная проблема с их использованием заключается в том, что они оба являются окончательными. Итак, я беру любой из этих ints и преобразовываю их в String и устанавливаю '.style.width'. – Lathan

Смежные вопросы