Я пытаюсь изменить каждый элемент <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())
Вы можете сделать:
$('div').before("\n").after("\n")
спасибо, это сработало. Я не знал, что мы можем сделать это без цикла :-)