let playersCell = '
<td class="foo" colspan="2">
<a href="example.com">
<span class="bold">John Beluga</span>
- Sarah Jay.
</a>
</td>
'
let players = cheerio.load(playersCell)
players.find('a').html()
Я пытаюсь загрузить HTML строку в cheerio.js и найти a
тег, но я получаю
[TypeError: player.find не является функцией]
Console.log
показывает players
find
- метод, который появляется в результатах поиска DOM. Вам нужно создать результат, прежде чем вы сможете использовать find.
Например:
let playersCell = '<table><tr>
<td class="foo" colspan="2">
<a href="example.com">
<span class="bold">John Beluga</span>
- Sarah Jay.
</a>
</td></tr></table>
'
let players = cheerio.load(playersCell);
console.log(players('td').find('a').html());
<script src="https://wzrd.in/standalone/cheerio@latest"></script>
Но в этом случае нет необходимости. Вы можете просто использовать начальный поиск напрямую:
let playersCell = '
<td class="foo" colspan="2">
<a href="example.com">
<span class="bold">John Beluga</span>
- Sarah Jay.
</a>
</td>
'
let players = cheerio.load(playersCell);
console.log(players('a').html());
<script src="https://wzrd.in/standalone/cheerio@latest"></script>
Я получил .find is not a function
, и когда я посмотрел на объект в консоли, который я пытался найти, он сказал, что это тип tag
. Я понял, что мне нужно снова обернуть объект.
let results = $('.your .query')
results.each((i, r) => {
$(r).find('.your .next .query')
})
let players = cheerio.load(playersCell); players('.foo').find('a').html()