我试图只使用cheerio来提取div的内容 - 没有任何div的孩子。如果我只使用div.text() - 我得到所有文本 - 父和子。这是HTML - 我只想要值“5.25”
以下代码目前返回“购买价格$ 5.25”
以下HTML:
<div class="outer tile">
< ... various other html here >
<div class="cost">
<span class="text">Purchase price </span>
<small>$</small>5.25
</div>
</div>
以下相关node.js CHEERIO代码的摘录:
var $ = cheerio.load(data);
$("div.outer.tile").each(function(i, e) {
var price = $(e).find('div.price');
console.log(price.text());
});
答案 0 :(得分:12)
任何人仍然想知道如何在Cheerio中这样做:
$('div.classname').first().contents().filter(function() {
return this.type === 'text';
}).text();
答案 1 :(得分:2)
答案 2 :(得分:0)
我用过这篇文章
Get the text after span element using jquery
作为制作小提琴的参考
这对我来说是新的,但您可以通过仅返回nodeType 3
的元素来获取文本节点var a = $('.cost').first().contents().filter(function() {
return this.nodeType == 3;
});