gpt4 book ai didi

javascript - Cheerio:如何按文本内容选择元素?

转载 作者:可可西里 更新时间:2023-11-01 01:59:05 92 4
gpt4 key购买 nike

我有一些这样的 HTML:

<span id="cod">Code:</span> <span>12345</span>
<span>Category:</span> <span>faucets</span>

我想获取类别名称(“水龙头”)。这是我的试用版:

var $ = cheerio.load(html.contents);
var category = $('span[innerHTML="Category:"]').next().text();

但这不起作用(innerHTML 修饰符不选择任何内容)。

有什么线索吗?

最佳答案

你的代码不工作的原因是因为 [innerHTML] 是一个属性选择器,而 innerHTML 不是元素的属性(这意味着什么都没有被选中)。

您可以根据文本过滤 span 元素。在下面的示例中,.trim() 用于去除任何空白。如果文本等于“Category:”,则该元素包含在过滤后的返回元素集中。

var category = $('span').filter(function() {
return $(this).text().trim() === 'Category:';
}).next().text();

如果元素的文本正好是“Category:”,上面的代码片段将过滤元素。如果您想选择文本包含该字符串的元素,您可以使用:contains 选择器(如注释中所指出的):

var category = $('span:contains("Category:")').next().text();

或者,使用 .indexOf() 方法也可以:

var category = $('span').filter(function() {
return $(this).text().indexOf('Category:') > -1;
}).next().text();

关于javascript - Cheerio:如何按文本内容选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709765/

92 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com