我想使用通常在jQuery中找到的以下选择器来创建一个适用于其子代的函数:
var useroverviewHook = $("div[data-pnref='overview'] *[data-overviewsection]");
然而,它在Cheerio中不起作用。 Nodejs控制台正在报告
console.log($(useroverviewHook).length) is 0
即使在浏览器中测试时,值不为0,也存在多个元素。
首先,我认为内容是动态的,但如果我输出
res.writeHead(200, {'Content-Type': 'text/plain'}); res.write(html);
data-overviewsection就在那里。但是cheerio说它不是。
答案 0 :(得分:1)
首先,你不需要使用$()
twise
var useroverviewHook = $("div[data-pnref='overview'] *[data-overviewsection]");
console.log(useroverviewHook.length)
您可以简化此选择器(删除*
):
div[data-pnref='overview'] [data-overviewsection]
检查,输入选择器名称和属性时可能会出错,因为语法很好。
此外,有时浏览器会修改HTML,如果我遇到类似问题时会将其保存,我将响应保存到文件中并再次检查响应html。