Мой код ведет себя странно.Действительно, я создал свои данные в объекте JSON:
injectJson = {
"title": "Questions for a champion",
"rules": [
{
"idChrono": "chrono-minute",
"text": "Top is gone!",
"tag": [
{
"id": "chronometer",
"text": "countDown"
}
]
}
]
}
Вот мой HTML-код:
<div id="rules">
<h3>The game's rules!</h3>
</div>
<div id="begin">
<a href="#" class="link">Begin</a>
</div>
А вот код Javascript, с помощью которого я внедряю код HTML:
selectLinkBegin = document.getElementById("begin");
selectLinkBegin.firstElementChild.addEventListener("click", function(injectJson) {
// Injection code
selectRules = document.getElementById("rules");;
selectRules.firstElementChild.innerText = injectJson.rules[0].texte;
});
На моем компьютере объект JSON и код JavaScript находятся в одном файле .js.Я загружаю свой скрипт в конце тега body.Когда я открываю свой код .html в браузере, консоль отображает:
Uncaught TypeError: Невозможно прочитать свойство '0' из неопределенного в HTMLAnchorElement.
Но когда яскопировав код Javascript в консоль, я получаю ожидаемый результат: текстовое содержимое h3 обновлено.
Демо:
injectJson = {
"title": "Questions for a champion",
"rules": [{
"idChrono": "chrono-minute",
"text": "Top is gone!",
"tag": [{
"id": "chronometer",
"text": "countDown"
}
]
}]
}
selectLinkBegin = document.getElementById("begin");
selectLinkBegin.firstElementChild.addEventListener("click", function(injectJson) {
// Injection code
selectRules = document.getElementById("rules");;
selectRules.firstElementChild.innerText = injectJson.rules[0].texte;
});
<div id="rules">
<h3>The game's rules!</h3>
</div>
<div id="begin">
<a href="#" class="link">Begin</a>
</div>
Можете ли вы объяснить мне, что происходит?Как это исправить?Я уже очистил свой кеш, но он все тот же.