#node.js #jquery-selectors #cheerio
#node.js #jquery-селекторы #приветствие
Вопрос:
я решил это раньше, но теперь забыл. Как я могу получить доступ к этой дате, когда мой основной селектор
$('.date')
let cheerio = require('cheerio')
let html = `
<html>
<body>
<span class="date">
<span class="category">Article</span>
Sat, 22 Jan 2021 11:12
</span>
</body>
</html>`
let $ = cheerio.load(html)
// Empty
console.log($('.date').next().text())
// Empty
console.log($($('.date').children()[0]).next().next().text())
// Empty
console.log($($('.date').children()[0]).next().text())
// Empty
$('.date').each(el => { console.log($(el).text())})
Комментарии:
1. Это работает ?
$('.date').contents().last().text()
2. Вау, я не помню, чтобы я раньше пользовался контентом, да! это работа и add .trim() поскольку так много места, спасибо <3,1 часа, я разбираюсь в этом
3. я этого не видел cheerio.js.org/Cheerio.html#contents
Ответ №1:
Далее к комментарию @Dario:
Функция contents ():
Получает дочерние элементы каждого элемента в наборе сопоставленных элементов, включая текстовые и комментирующие узлы.
Итак, вы можете сделать это:
let cheerio = require('cheerio')
let html = `
<html>
<body>
<span class="date">
<span class="category">Article</span>
Sat, 22 Jan 2021 11:12
</span>
</body>
</html>`
let $ = cheerio.load(html)
let val = $('.date').contents().last().text()
console.log(val.trim())
// prints Sat, 22 Jan 2021 11:12