我有一些像这样的HTML:
Code: 12345 Category: faucets
我想获取类别名称("水龙头").这是我的试用版:
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();
如果文本正好是"类别:",则上面的代码段将过滤元素.如果要在文本包含该字符串时选择元素,可以使用:contains
选择器(如注释中所指出的):
var category = $('span:contains("Category:")').next().text();
或者,使用该.indexOf()
方法也可以:
var category = $('span').filter(function() { return $(this).text().indexOf('Category:') > -1; }).next().text();