Cheerio奇怪的解析

问题描述

我正在用非常简单的代码进行测试:

const $ = await cheerio.load("<body> <table> kokoko </table> </body>");
await console.log($("body").first().html());

但是当我运行它时,我会在控制台中得到它:

kokoko<table></table>

为什么kokoko<table>标记之外?

解决方法

<table>元素不能直接包含文本内容,它必须位于<tr><td><th>元素之内。

因此,解析器将文本解释为直接位于<body>(允许使用的最近位置)中。