我尝试使用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());
});
4条答案
按热度按时间zi8p0yeb1#
任何人仍然想知道如何在Cheerio中做到这一点:
kxkpmulp2#
我最喜欢这个:
我觉得更简洁(不知道效率)。
source
runkit
vnjpjtjt3#
我用这个帖子
Get the text after span element using jquery
作为制作小提琴参考
http://jsfiddle.net/TKwhY/
这对我来说是新的,但是您可以通过只返回nodeType 3的元素来获取文本节点
p1iqtdky4#
如果确定它是最后一个文本子对象,则可以用途:
但这里有一个比selected answer更通用的方法(我避免使用
.first()
并修剪文本):另请参阅:
<br>
标记后的文本