Как перебирать вложенные элементы div с помощью cheerio

Я пытаюсь изменить каждый элемент <div> в своем HTML, обернув его новыми строками с помощью cheerio.

вход:

<html>
    <body> 
        <div>
            <div><div>Hi</div></div>
            <div>hello</div>
            <div>ur awesome</div>
        </div>
    </body>
</html>

Ожидаемый результат:

<html>
    <body> 

        <div>

            <div>

                <div>Hi</div>

            </div>


            <div>hello</div>


            <div>ur awesome</div>

        </div>

    </body>
</html>

результат, который я получил:

<html><head></head><body> 
        
 <div>
            <div><div>Hi</div></div>
            <div>hello</div>
            <div>ur awesome</div>
        </div> 

    
</body></html>

Проблема: не добавляются новые строки во вложенные элементы <div>. Пробовал использовать контекст $(this), но не сработало.

код:

const c = require('cheerio')
const $ = c.load(html);

$('div').each((i,e) => {
    let mod = `\n ${ c.html($(e)) } \n`
    $(e).replaceWith(mod)
})

console.info($.html())
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
261
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать:

$('div').before("\n").after("\n")

спасибо, это сработало. Я не знал, что мы можем сделать это без цикла :-)

vikas kv 23.12.2020 06:50

Другие вопросы по теме