Функция $.parseHTML()
Определение и применение
Функция $.parseHTML() превращает HTML-строку в массив DOM-узлов. Это удобно, когда нужно разобрать
фрагмент, проверить его структуру и затем решить, какие узлы вставить в документ.
Синтаксис
const nodes = $.parseHTML(html);
const localNodes = $.parseHTML(html, document, false);
const withScripts = $.parseHTML(html, document, true);Параметры и возвращаемое значение
html — строка разметки; context — документ создания узлов. С 3.0 при отсутствии контекста
используется отдельный документ. keepScripts по умолчанию равен false: исполняемые элементы
script исключаются из результата.
Возвращается массив узлов, а не коллекция jQuery и не обязательно только элементы. Пробелы и текст вокруг тегов могут
дать текстовые узлы. Для методов jQuery оберните результат в
$(). Сам разбор не вставляет узлы на страницу.
Особенности и совместимость
Функция доступна с 1.8. Сохранение скриптов через keepScripts: true не означает их немедленный запуск при
разборе; поведение при дальнейшей вставке зависит от способа вставки.
Удаление script не делает произвольный HTML безопасным: остаются обработчики событий, URL и другие
активные конструкции. Для недоверенной разметки нужна очистка; для обычного текста используйте
.text(). При Trusted Types применяются также требования политики документа.
Документация
Пример использования
Разобрать и выбрать нужный элемент: попробуйте сами
В строке есть текст и два элемента. Пример выбирает только strong и вставляет его; остальные узлы остаются вне страницы. Используется jQuery 4.0.0.
index.html
<div id="target"></div>
<pre id="result"></pre>
main.js
const nodes = $.parseHTML('Текст <strong>Важно</strong><span>Дополнение</span>')
const important = $(nodes).filter('strong')
$('#target').append(important)
$('#result').text('Узлов: ' + nodes.length + ' | вставлено: ' + important.length)
Нажмите , чтобы запустить пример.