use*_*719 5 javascript node.js cheerio
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()
Run Code Online (Sandbox Code Playgroud)
我尝试将 html 字符串加载到 Cheerio.js 中并找到一个a标签,但我得到了
[类型错误:players.find 不是函数]
Console.log显示为players
我得到了.find is not a function,当我在控制台中查看我试图找到的对象时,它说它的类型是tag。我意识到我需要再次包裹该物体。
let results = $('.your .query')
results.each((i, r) => {
$(r).find('.your .next .query')
})
Run Code Online (Sandbox Code Playgroud)
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());Run Code Online (Sandbox Code Playgroud)
<script src="https://wzrd.in/standalone/cheerio@latest"></script>Run Code Online (Sandbox Code Playgroud)
但在这种情况下,没有必要。您可以直接使用初始搜索:
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());Run Code Online (Sandbox Code Playgroud)
<script src="https://wzrd.in/standalone/cheerio@latest"></script>Run Code Online (Sandbox Code Playgroud)