Я работаю с моим первым чистым приложением JavaScript, и мне трудно понять, почему мой document.getElementById
в последнем блоке приведенного ниже кода не работает. Я начинаю свой сценарий с document.addEventListener('DOMContentLoaded', function() {first functions called}
, и элементы загружаются в DOM без каких-либо проблем.Почему здесь не работает document.getElementById?
Проблема заключается в том, что мой код прыгает на последний блок (начало var x
), прежде чем элементы будут добавлены на мою страницу? Если да, есть ли способ сказать код отвиснуть? В конце концов я хочу позвонить document.getElementById
в более позднюю функцию (для изменения DOM).
function populateRefineMenu(arr, chosenArr, category) {
var categoryUL = document.createElement('ul');
categoryUL.className = 'refine-menu-ul';
categoryUL.Id = 'refine-' + category;
var clearFilter = document.createElement('li');
clearFilter.className = 'clear-filter';
clearFilter.Id = 'genre-clear-filter';
console.log('This ID is ' + clearFilter.Id); // logs fine
clearFilter.innerHTML = 'Clear Filter';
console.log("clearFilter is " + clearFilter.innerHTML); // logs fine
refineMenu.appendChild(categoryUL);
categoryUL.appendChild(clearFilter);
var x = document.getElementById('genre-clear-filter');
console.log(x) // logs "null"
console.log(x.innerHTML) // "cannot read property 'innerHTML'
}
Спасибо за ваш совет!
Свойства объекта чувствительны к регистру. Это должно быть 'clearFilter.id'. – JJJ
О, поэтому я создавал новый ключ и значение для объекта, а не устанавливал идентификатор. Понял. Благодаря! – dedaumiersmith