这个jQuery喜欢选择器" cheerio"尝试从html页面中的评论节点获取评论 $是cheerio对象。 怎么办呢?感谢
console.log($('*').contents().length); //reports back more than 1000
$('*').contents().filter(function() {
if (this.nodeType == 8) {
//the following gives null for every node found
console.log($(this).html());
//the following gives blank for every node found
console.log($(this).text());
}
});
答案 0 :(得分:3)
评论的内容不是HTML(.innerHTML
)或值(.value
),而是.nodeValue
。 jQuery并没有为你提供这个功能,我怀疑Cheerio也做了,但你不需要一个:只需使用this.nodeValue
:
$('*').contents().filter(function() {
if (this.nodeType == 8) {
console.log(this.nodeValue);
}
});
(我已经使用了filter
,因为您的示例确实如此,但如果您未使用filter
的返回值,则each
会更有意义。)
这是一个DOM示例,但可能Cheerio的工作方式类似:
$("*").contents().each(function() {
if (this.nodeType === 8) {
console.log(this.nodeValue);
}
});

<!-- Comment 1 -->
<!-- Comment 2 -->
<!-- Comment 3 -->
<!-- Comment 4 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;