#javascript #jquery #node.js #cheerio
#javascript #jquery ( jquery ) #node.js #приветствую
Вопрос:
Я пытаюсь изменить каждый <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.log($.html())
Ответ №1:
Вы могли бы сделать:
$('div').before("n").after("n")
Комментарии:
1. спасибо, это сработало. Я не знал, что мы можем сделать это без зацикливания 🙂