为什么这个Cheerio属性select器不工作?

我想使用通常在jQuery中find的以下select器来创build一个可以在其子节点上工作的函数:

var useroverviewHook = $("div[data-pnref='overview'] *[data-overviewsection]"); 

但是,它不在Cheerio工作。 Nodejs控制台正在报告

 console.log($(useroverviewHook).length) is 0 

即使在浏览器中testing时,该值不是0,存在多个元素。

首先,我认为内容是dynamic的,但如果我输出

 res.writeHead(200, {'Content-Type': 'text/plain'}); res.write(html); 

数据概览部分在那里。 但是cheerio说不是。

首先,你不需要使用$() twise

 var useroverviewHook = $("div[data-pnref='overview'] *[data-overviewsection]"); console.log(useroverviewHook.length) 

你可以简化这个select器(删除* ):

 div[data-pnref='overview'] [data-overviewsection] 

检查,也许你犯了一些错误,因为你的语法是好的typesselect器名称和属性。

此外,有时浏览器修改HTML,如果它有问题时,我有类似的问题我保存响应到一个文件,并再次检查响应HTML。