You need to enable JavaScript to run this app. Cheerio遍历结构下如何获取$(this)子元素内a标签的href属性值
优惠活动
大模型
产品
解决方案
定价
更多

Cheerio遍历结构下如何获取$(this)子元素内a标签的href属性值

Cheerio 嵌套层级元素属性提取实现方案

现有遍历逻辑完全不需要改动,只需要在目标单元格的处理分支内,补充嵌套a标签的定位和属性读取代码即可。

可直接套用的代码片段

在i == 1对应的处理分支中,直接写入取值逻辑:

if( i == 1 ){
  // 从当前td的所有后代节点中查找a标签
  const innerATag = $(this).find('a');
  // 加非空判断,避免单元格内没有a标签时报错
  const targetHref = innerATag.length > 0 ? innerATag.attr('href') : null;
}

整合到原代码的完整版本:

let outputTableBody = $('.box.table-quotes table.table tr').each(function(i, elem) {
   let expression = $(this).children('td:nth-child(1)').text();

   if(expression == companyNameArray[ExchangeNameParse]){
     $(this).children('td').each(function(i, elem) {
       if( i == 1 ){
         const innerATag = $(this).find('a');
         const targetHref = innerATag.length > 0 ? innerATag.attr('href') : null;
         // 自行处理提取到的targetHref值即可
       }
     })
   }
})

核心方法说明

针对你关心的「通过$(this)选中节点后,如何获取内部嵌套元素的属性值」,核心要理清两个选择方法的差异:

  • .children(选择器):仅匹配当前节点的直接第一级子元素,不会向下穿透嵌套层级,适合选紧邻的直接子节点
  • .find(选择器):会遍历当前节点下的所有后代层级,不管目标元素嵌了多少层容器(比如td里面套了span、div再放a标签)都能稳定选中,和之前用.text()提取全层级文本的适配性一致,不会因为嵌套结构复杂漏选
  • 定位到目标元素后,统一用.attr('属性名')方法读取对应属性值即可,不管是a标签的href、img标签的src,调用逻辑完全一致。

内容的提问来源于stack exchange,提问作者Mikhail Krivosheev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 00:15:04