Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.08.2019, 17:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,722

Сообщение от Роман Андреевич
стандартными методами не могу потому что это со стороны сервера происходит на nodejs. Поэтому регуляркой надо получить содержимое.
Плохо, что сервер не дружит с клиентом и сыпет ему грязь, но это не означает, что нельзя использовать методы.

var str = '<html>\
<head>\
</head>\
<body>\
<div><p>Text <span>text/span></p></div>\
</body>\
</html>',
tmp = document.createElement('template');

tmp.innerHTML = str;
console.log(tmp.content.querySelector('div'));
Ответить с цитированием
  #12 (permalink)  
Старый 21.08.2019, 00:06
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,156

laimas, для этого лучше использовать DOMParser
var doc = new DOMParser().parseFromString(`<html>
<head>
</head>
<body>
<div><p>Text <span>text/span></p></div>
</body>
</html>`, "text/html");

console.log(doc.querySelector('div'));


Сообщение от Роман Андреевич
парюсь с регулярками, прошу помощи
Используйте вместо этого DOMParser

Сообщение от Роман Андреевич
стандартными методами не могу потому что это со стороны сервера происходит на node.js
Там работает точно такое же ядро JS.

Сообщение от Роман Андреевич
Поэтому регуляркой надо получить содержимое.
Я вам для этого рекомендую использовать DOMParser, таким образом вы сможете работать с документом, как с объектом DOM.

DOMParser доступен во всех браузерах, также есть реализация для node.js

Сообщение от Роман Андреевич
надо из него вырезать все, вокруг тега main, т.е. остается только <main>
Сообщение от Роман Андреевич
нужно получить то что я выделил дефисами в коде (т. е. элемент, подходящий под селектор .ticket-box.ticket-box-c2)
var doc = new DOMParser().parseFromString(`<html><body><main>код, полученный каким угодно способом</html>`, "text/html");

var node = doc.querySelector("main, .ticket-box.ticket-box-c2"); // выбирай нужный элемент
console.log(node.outerHTML); // и покажи его код, например, в консоли


Чтобы использовать DOMParser в node.js его нужно установить в проект пакет jsdom (npm i jsdom) и импортировать (const { JSDOM } = require("jsdom");
const { DOMParser } = new JSDOM().window; )

Т. е. тот же самый пример для node.js выглядит так (добавлены первые две строчки)
const { JSDOM } = require("jsdom")
const { DOMParser } = new JSDOM().window;

var doc = new DOMParser().parseFromString(`<html><body><main>код, полученный каким угодно способом</html>`, "text/html");

var node = doc.querySelector("main, .ticket-box.ticket-box-c2"); // выбирай нужный элемент
console.log(node.outerHTML); // и покажи его код, например, в консоли

Последний раз редактировалось Malleys, 21.08.2019 в 00:29.
Ответить с цитированием
  #13 (permalink)  
Старый 21.08.2019, 07:59
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 286

j0hnik,
огонь!!!!)))
Ответить с цитированием
  #14 (permalink)  
Старый 21.08.2019, 08:34
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 286

Malleys, спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ссылок в html коде Biglu Элементы интерфейса 4 20.11.2018 10:42
вывод сообщений со стены vk Радиойод Общие вопросы Javascript 0 15.11.2017 14:48
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
Как корректно обрезать html в contenteditable div ? asker Events/DOM/Window 0 28.04.2016 17:04
Преобразовать строку в HTML код (обратное htmlspecialchars из php) daslex Общие вопросы Javascript 71 23.08.2015 20:41