【发布时间】:2017-10-13 18:05:51
【问题描述】:
我有一个非常简单的HTML page,我尝试使用cheerio 执行一个简单的CSS 选择器。
const $ = cheerio.load(html);
console.log($(`body > div > div.-layout-h > div.task-tests--label`).text());
结果:Input:Output: Expected Output:Console Output:
我的目标是获取第一个元素并打印出它的内部文本。我还尝试使用each() 迭代选定的元素:
const $ = cheerio.load(html);
$(`body > div > div.-layout-h > div.task-tests--label`).each((i, e) => {
console.log(`${i} = ${e.text()}`);
});
结果:
0 = [object Object]
1 = [object Object]
2 = [object Object]
3 = [object Object]
如何打印每个选定项目的内部文本?
【问题讨论】:
-
jQuery 不包含在相关页面中,因此
$()不是 jQuery,它是控制台的内置便利$()函数,它返回一个执行 的对象没有有.text()方法。关于为什么你可能会打印所有四个元素,那是因为选择器匹配它们。 -
添加
-
@YasharAliabasi - 至少在 URL 的开头有 //
-
@nnnnnn 知道了,那么如何在 Chrome 的开发工具中获得对象的文本?
-
@Amadan - 如果
$是控制台的内置函数,它只会返回一条记录。 (它基本上是querySelector()的快捷方式,不是吗,$$()是querySelectorAll()的快捷方式?)但是是的,$(selector).textContent应该可以工作。
标签: javascript html node.js cheerio