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

如何使用Cheerio/JQuery选择器获取a标签内的文本内容?

问题描述

我尝试提取某网站页面中的链接文本,页面结构如下:

<div id="list">
  <div class="class1">
    <div class="item-class1">
      <a href="http://www.example.com/1">example1</a>
    </div>
  </div>
  <div class="class2">
    <div class="item-class2">
      <a href="http://www.example.com/2">example2</a>
    </div>
  </div>
</div>

我用下面的代码提取:

var list = [];
$('div[id="list"]').find('a').each(function (index, element) {
  list.push($(element).attr('href'));
});

但输出的是链接地址:

0: "http://www.example.com/1"
1: "http://www.example.com/2"

我期望得到的是链接的文本内容:

0: example1
1: example2
解决方案

你现在用attr('href')获取的是a标签的href属性值(也就是跳转的链接地址),要获取标签包裹的文本内容,只需要把这部分改成$(element).text()就可以了(如果文本里包含HTML格式,也可以用$(element).html(),这里用text()完全满足需求)。

修改后的代码如下:

var list = [];
$('div[id="list"]').find('a').each(function (index, element) {
  list.push($(element).text());
});

运行这段代码后,list数组里就会存储你想要的example1和example2了。

另外,也可以用更简洁的jQuery写法,直接借助map方法实现:

var list = $('div[id="list"] a').map(function() {
  return $(this).text();
}).get();

这个写法和循环的效果完全一致,只是代码更紧凑。

内容的提问来源于stack exchange,提问作者Worapol Pragobkit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:55:44