我正在建造一个刮刀,Node.js
但遇到了一个小问题。我正在尝试构建一个获取元素文本的函数,无论它是嵌入在<p>
标签中,还是嵌入在 a 中,<span>
或者只是一个<div>
带有文本的内部。
以下内容目前仅适用于<p>
标签中包含的文本:
function getDescription(product){
var text =[];
$('.description *')
.each(function(i, elem) {
var dirty = $(this).text();
var clean = sanitize(dirty).trim();
if (clean.length){
text.push(clean);
}
});
text.join(',');
sanitize(text).trim();
return text;
}
这适用于这样的代码:
<div class="description">
<p>Test test test</p>
</div>
但不适用于此:
<div class="description">
Test test test
</div>
作为参考,sanitize
andtrim
函数是 的一部分Node Validator
,但这与我的问题并不特别相关 - 它们只是获取一个字符串并从中删除空格。
关于我可以做些什么来使一个功能适用于两个实例的任何想法?雪上加霜的是,我在node
使用cheerio
库来复制 的某些功能时受到了一些限制jQuery
,但不是全部。