@romaro

Как преобразовать HTML-строку в Element?

Я добавляю тизеры на страницу, а затем пытаюсь извлечь последний, чтобы отслеживать его:

// templates содержит строки в формате html
templates.forEach(templ => {
  this.el.insertAdjacentHTML('beforeend', templ);
});

this.lastChild = this.el.lastChild;
        
// Observer определен выше как инстанс IntersectionObserver
// Здесь я получаю ошибку, т.к. lastChild не Element
this.observer.observe(this.lastChild);


Правильно ли я понимаю, что insertAdjacentHTML всего лишь парсит строку, т.е. проверяет ее на соответствие HTML. При этом строка остается текстовой нодой и не преобразуется в HTMLElement? То есть я должен вначале распарсить строку через DOMParser, а затем использовать insertAdjacentElement?

Если так, то не совсем понятна польза от insertAdjacentHTML. Просто валидация строки?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@romaro Автор вопроса
По невнимательности использовал this.el.lastChild вместо lastElementChild. Свойство lastChild открывает доступ к инстансу класса Node, который не может быть передан в метод observe(), там ожидается element.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы