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

使用Cheerio获取input标签时first().text()返回空值的问题

解决Cheerio获取标签text()返回空的问题

你遇到的问题本质是对标签的结构理解有误:是自闭合标签,它的核心数据并不在标签的文本节点里,而是存储在value属性中,所以调用text()方法自然会返回空值。

正确的获取方式

直接通过Cheerio的attr()方法获取value属性值,再处理转义的HTML实体即可:

  1. 获取value属性
import * as cheerio from 'cheerio';

const $ = cheerio.load(html);
// 获取目标input的value属性
const rawValue = $('#abc').first().attr('value');
  1. 解析转义后的JSON数据
    示例中的value值包含HTML转义的",需要先替换为正常双引号,再解析为JSON对象:
// 替换HTML转义的双引号
const decodedValue = rawValue.replace(/"/g, '"');
// 解析为JSON
const data = JSON.parse(decodedValue);

// 现在可以正常访问数据
console.log(data[0].Status); // 输出 "Obtained"
console.log(data[0].History[0].HistoryDate); // 输出 "07/21/2022"

为什么text()无效?

Cheerio的text()方法用于提取元素标签内部的文本内容(比如<div>这里的文本</div>中的内容),但标签没有闭合标签,也不存在内部文本节点,所以调用text()必然返回空。

内容的提问来源于stack exchange,提问作者Nick Khatri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:10:49