Mesuti
@Mesuti

Как из переменной удалить теги без изменения верстки?

Привет!
Сохраняю html блок в pdf.
Как из этого html блока (element) предварительно удалить лишние теги, чтобы не отправлять в функцию сохранения в PDF?

.remove() не подходит, так как удаляет блоки со страницы, а нужно сделать незаметно

...
let element = document.getElementById('print-content'); // Берем блок 
html2pdf(element); // Сохранение блока в PDF
...
  • Вопрос задан
  • 74 просмотра
Решения вопроса 2
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Лучше проще, чем никогда
// Берем блок
let element = document.getElementById('print-content');

 // Клонируем
const cloneElem = element.cloneNode(true);

 // Удаляем ненужное
cloneElem.querySelectorAll('.no-print').forEach( el => el.remove() );

 // Сохранение блока в PDF
html2pdf(cloneElem);
Ответ написан
Mesuti
@Mesuti Автор вопроса
Решение.
Создать новый div, в него положить старый и удалить лишнее.
Затем сохранить новый div

let divForPdf = document.createElement('div');
    divForPdf.innerHTML = document.getElementById('print-content').innerHTML;
    divForPdf.querySelectorAll('.for_hidden').forEach(i => i.remove())
    html2pdf(divForPdf);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
При печати можно отключать элементы в CSS через @media print.
Вот только html2pdf - это не печать, а сохранение в PDF.
Ответ написан
v3shin
@v3shin
Веб-шаман
Добавьте элементу класс, отправьте на сохранение и удалите класс.
В стилях сможете скрыть нужные элементы внутри добавленного класса.

let element = document.getElementById('print-content');
element.classList.add('to-print');
html2pdf(element);
element.classList.remove('to-print');
Ответ написан
Ваш ответ на вопрос

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

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