使用cherrio选择器获取注释元素文本

时间:2016-07-02 06:32:11

标签: jquery cheerio

这个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());
  }
});

1 个答案:

答案 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;
&#13;
&#13;