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

jQuery:实现H1标签中“-”后文本包裹span标签的问题

解决H1标签中“-”后内容包裹span的问题

我来帮你搞定这个问题!你之前的代码之所以只移除了“-”后的内容,主要是两个小问题导致的:

  • 你只执行了替换操作,但没把替换后的结果重新赋值给H1标签
  • 使用text()方法获取内容会把HTML标签当成纯文本处理,就算替换成功也不会渲染成span元素

给你调整后的正确代码:

$(document).ready(function() {
  $('h1').each(function() {
    // 获取H1当前的HTML内容(不是纯文本)
    const currentContent = $(this).html();
    // 正则匹配“- ”后的所有内容,用span包裹
    const updatedContent = currentContent.replace(/- (.*)$/, '- <span class="searchTerm">$1</span>');
    // 把新内容重新赋值给H1
    $(this).html(updatedContent);
  });
});

代码说明:

  • 用each()遍历所有H1标签(如果页面有多个的话也能处理)
  • 改用html()方法获取和设置内容,这样能正确识别HTML标签
  • 正则表达式/- (.*)$/精准匹配“- ”之后的所有内容,用$1捕获这个内容,替换成带指定class的span结构

测试一下,当你的原始HTML是:

<h1>Search - Apple</h1>

运行代码后就会变成你期望的结果:

<h1>Search - <span class="searchTerm">Apple</span></h1>

内容的提问来源于stack exchange,提问作者tourbillon matrix

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:07:53