2014-01-19 4 views
1

Не знаю, почему он не может найти высоту. Любая помощь будет оценена по достоинству.Uncaught TypeError: Не удается прочитать свойство «clientHeight» из null

var h = document.getElementById('big_button').clientHeight, 
    center = -h/2; 
window.onload = function() { 
    document.getElementById('big_button_container2').style.marginTop = 'center'; 
}; 

http://jsfiddle.net/4zux6/

+1

У вас нет элемента с идентификатором 'big_button'. –

+0

Требуется точка с запятой ';' после clientHeight вместо запятой ','? –

+0

@JohnMcMahon: '' 'правильно. Он объявляет несколько переменных. –

ответ

2

Вы можете использовать document.getElementsByClass вместо этого как у вас есть только элементы с не имена классов идентификаторов.

т.е.

var h = document.getElementsByClassName('big_button')[0].clientHeight, 
    center = -h/2; 
window.onload = function() { 
    document.getElementsByClassName('big_button_container2')[0].style.marginTop = 'center'; 
}; 
+0

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

+0

Теперь я получаю этот _Uncaught TypeError: Невозможно установить свойство marginTop из undefined_. Как центр undefined? – dillonbrannick

+1

@dillonbrannick Я забыл, что это дает вам массив элементов с этим именем класса. Таким образом, вам нужно получить доступ к элементу, который вы хотите в индексе 0. Я изменил ответ, чтобы это отразить. На работе? В качестве альтернативы просто добавьте идентификаторы к элементам, к которым вы хотите получить доступ, и используйте свой предыдущий метод getElementById. –

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