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

如何用jQuery/JavaScript提取指定HTML中Allergies文本?解决重复返回问题

解决方法:精准定位目标元素提取文本

你遇到的$(this).text()返回重复文本的问题,核心原因是没有精准定位到存放"Allergies"的目标span元素,而是获取了父元素下所有子节点的文本内容(大概率是你的$(this)指向的元素包含了重复的文本节点,或者DOM结构里存在你没注意到的重复元素)。

根据你提供的HTML结构,存放目标文本的是带有template-block-title类的span,我们可以通过以下方式精准提取:

方法1:jQuery 实现

如果你的$(this)指向的是.chart-component-header或.template-block-header这类父容器,直接通过find()方法定位目标元素:

// 提取并去除多余空格
const allergyText = $(this).find('.template-block-title').text().trim();
console.log(allergyText); // 输出 "Allergies"

如果你的事件绑定在.template-block-header内部的外层span上,也可以用children()直接定位子元素:

const allergyText = $(this).children('.template-block-title').text().trim();

方法2:原生 JavaScript 实现

如果不想依赖jQuery,用原生API同样可以实现:

// 定位目标元素并提取文本
const allergyText = this.querySelector('.template-block-title').textContent.trim();
console.log(allergyText); // 输出 "Allergies"

为什么之前会得到重复文本?

结合你的HTML结构推测,应该是$(this)指向了包含多个文本节点的父元素(比如外层的<span>或.template-block-header),而text()(或原生textContent)会把该元素下所有子节点的文本拼接起来。如果你的实际DOM中存在重复的文本节点(比如隐藏的克隆元素),就会出现"AllergiesAllergies"的结果。通过精准定位到.template-block-title,就能彻底避免这种问题。

内容的提问来源于stack exchange,提问作者Shalabh Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:23:13