Document.getElementbyId() возвращает null
В коде в строке, помеченной как//Ошибка в комментариях. Я получаю сообщение об ошибке Javascript: "Невозможно прочитать стиль свойства" null ". Я понятия не имею, что он не может найти объект. Я думал и все пробовал. Пожалуйста помоги. Вот код:
<script type="text/javascript">
$.getJSON('https://graph.facebook.com/647045111?fields=first_name&<%= Session["Token"] %>',
function (data) {
$('#userName').html(data.first_name);
});
document.getElementById('connectedUnregistered').style.display = 'block'; //Error
</script>
<div id="userName"></div>
<div id="disconnected" style="display:block;">
<div id="heading">Facebook login</div>
<a href="Account/FacebookLogin" id="loginButton"><div id="fbConnectButton"><img src="/Content/Images/fbconnect.png"/></div></a>
</div>
<div id="connectedUnregistered" style="display:none">
<div id="heading">Register Now</div>
</div>
Ответы
Ответ 1
Вы выполняете свой код javascript ПЕРЕД тем, как <div id="connectedUnregistered" />
был создан.
Также обратите внимание, что вы не закрыли <div>
с помощью соответствующего </div>
.
Итак, переместите свой javascript-код в часть ниже вашего HTML-кода. Или выполните его после завершения загрузки страницы. Если вы используете JQuery, вы можете сделать:
<script>
$(document).ready(function() {
... your code ...
});
</script>
Ответ 2
Возможно, постарайтесь разместить этот код в
$(document).ready(function(){
//Code
});
блок
Ответ 3
Поместите ваш script в конец HTML-документа вместо начала и посмотрите, не решает ли это что-то.
JavaScript не может редактировать элемент DOM, поскольку он еще не создан.
Ответ 4
Кроме того, если в некоторой части кода, который вы используете document.write
, очень часто получается null.
Ответ 5
script пытается получить элемент перед загрузкой элемента. Поместите script после элемента или поместите его в загружаемое или готовое событие.
Ответ 6
Код выполняется до создания элемента. Поскольку вы используете jquery, просто оберните его в document.ready:
$(function(){
// code goes here
});
Это будет выполняться после создания DOM.
Ответ 7
Код javascript выполняется до того, как DOM будет полностью доступен, и вызов завершится с ошибкой. Попробуйте вместо этого
$(document).ready(function() {
document.getElementById('connectedUnregistered').style.display = 'block'; //Error
}
Ответ 8
Эта ошибка также может указывать на то, что элемент не имеет идентификатора.
<input type="text" name="myelem" />
Убедитесь, что ваш элемент имеет идентификатор.
<input type="text" name="myelem" id="myelem" />
Ответ 9
в моем случае это было из-за наличия этой строки в начале файла jsp/html (любой):
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
удаление его решило проблему для меня (я не помню, что она делала на моей странице на первом месте)