You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中使用Cheerio如何选择多个同类元素中的指定元素

问题原因

find(".class1").find("a")[1] 获取到的是未经过Cheerio封装的原生DOM节点,本身不包含attr方法,所以你原来的写法无法正常拿到属性值。

推荐实现方案

直接使用Cheerio内置的eq()方法按索引筛选元素,该方法返回的是封装完成的Cheerio实例,可直接调用attr读取属性。注意索引从0开始计数,你需要的第二个a标签对应索引1,写法如下:

$(".class1").find("a").eq(1).attr("href")

其他兼容写法

如果你更习惯用方括号索引取节点的写法,也可以把取到的原生DOM节点重新用Cheerio包裹后再读取属性:

const aNodes = $(".class1").find("a")
const targetHref = $(aNodes[1]).attr("href")

补充说明

如果后续页面结构调整,a标签的顺序不固定,你也可以通过文本匹配定位元素,比如匹配文本为Some random text的第二个a标签:

$(".class1 a:contains('Some random text')").eq(1).attr("href")

内容的提问来源于stack exchange,提问作者Venkat Lohith Dasari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:15:01