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">

удаление его решило проблему для меня (я не помню, что она делала на моей странице на первом месте)