Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2023, 17:14
Аспирант
Отправить личное сообщение для Dmitriy154 Посмотреть профиль Найти все сообщения от Dmitriy154
 
Регистрация: 11.02.2016
Сообщений: 48

строка содержит html код
Подскажите, наиболее рациональное решение:
Имеется строка содержащая весь html-код страницы. В этом коде есть <div id='stage'>...</div>.
Каким образом можно получить содержимое данного контейнера? Как я понимаю регулярками здесь тяжеловато выделить.
Либо воссоздать document.documentElement и через stage.innerHTML получить содержимое?
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2023, 17:52
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

const cont = document.createElement('template');
cont.innerHTML = '...<div id='stage'>...</div>...';
const result = cont.content.getElementById('stage').innerHTML;

Последний раз редактировалось voraa, 28.10.2023 в 18:03.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2023, 18:11
Аспирант
Отправить личное сообщение для Dmitriy154 Посмотреть профиль Найти все сообщения от Dmitriy154
 
Регистрация: 11.02.2016
Сообщений: 48

Огромное спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2023, 18:32
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Но если в строке полный код html начиная с <!DOCTYPE html>
то будет правильнее создавать полный документ
const doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = '...<div id='stage'>...</div>...';
const result = doc.getElementById('stage').innerHTML;
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2023, 18:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Dmitriy154,
let parser = new DOMParser();
let html = `...<div id='stage'>12345</div>...`;
let doc = parser.parseFromString(html, "text/html");
alert(doc.getElementById('stage').innerHTML);
Ответить с цитированием
  #6 (permalink)  
Старый 29.10.2023, 14:09
Аспирант
Отправить личное сообщение для Dmitriy154 Посмотреть профиль Найти все сообщения от Dmitriy154
 
Регистрация: 11.02.2016
Сообщений: 48

Спасибо, тоже интересный подход
Ответить с цитированием
  #7 (permalink)  
Старый 29.10.2023, 14:12
Аспирант
Отправить личное сообщение для Dmitriy154 Посмотреть профиль Найти все сообщения от Dmitriy154
 
Регистрация: 11.02.2016
Сообщений: 48

Сообщение от voraa Посмотреть сообщение
Но если в строке полный код html начиная с <!DOCTYPE html>
то будет правильнее создавать полный документ
const doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = '...<div id='stage'>...</div>...';
const result = doc.getElementById('stage').innerHTML;
понял, через temlate тоже работает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавить в span html код hurma jQuery 3 25.11.2015 22:04
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Получить html код удаленной страницы AntonP Общие вопросы Javascript 19 02.05.2012 16:15
как узнать html код документа, подгруженного в iframe alexKniaz Events/DOM/Window 7 03.12.2008 12:37