Почему я получаю сообщение "Не могу установить свойство 'innerHTML' для null в ahint" - PullRequest
0 голосов
/ 06 февраля 2019

Я пытался написать некоторый код в JS, но когда я наведу курсор мыши, появляется ошибка «Не удается установить свойство« innerHTML »для null в ahint».Я читал, что такая ошибка может произойти, потому что Chrome компилирует / рендерит код JS еще до того, как Div создан.Поэтому я положил его на дно, чтобы проверить.К сожалению, положить его на дно не решил мою проблему.Может быть, кто-то более опытный поймет это.

var hint = "Hello";

function ahint()
{
    document.getElementById('#randomhint').innerHTML = hint;
}

    <div id="randomhint" onmouseover="ahint()">!</div>

    <script type="text/javascript" src="main.js"></script>
</body>

1 Ответ

0 голосов
/ 06 февраля 2019

Удалите # из идентификатора:

var hint = "Hello";

function ahint()
{
    document.getElementById('randomhint').innerHTML = hint;
}

Вы, вероятно, видели # в коде, который использует jQuery или подобную библиотеку, как в $('#randomhint').Вот как эти библиотеки знают, что вы хотите использовать id, а не, скажем, имя тега.

Но вам не нужно (и вы не можете использовать) это при использовании getElementById (который является частью«Ванильный» JavaScript).С getElementById только фактическое значение id ("randomhint") принадлежит.

...