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

如何移除data-original-title中的<br>?现有JS代码出现类型错误

解决abbr元素data-original-title里的
标签问题

为啥之前的代码报错?

你写的JS代码报错,是因为部分abbr.small元素根本没设置data-original-title属性,导致$(this).attr('data-original-title')返回undefined,这时调用replace方法自然会触发类型错误。而且你之前的代码错误地修改了元素的文本内容,而不是目标属性data-original-title,这也达不到需求。

可行的解决方法

修正后的jQuery代码

给每个元素做属性存在性判断,确保只有存在data-original-title的元素才会被处理,同时直接修改目标属性:

$('abbr.small').each(function() {
  const title = $(this).attr('data-original-title');
  if (title) {
    // 正则匹配所有<br>变体,比如<br/>、<br />
    $(this).attr('data-original-title', title.replace(/<br\s*\/?>/gi, ''));
  }
});

原生JS写法(不用jQuery)

如果页面没引入jQuery,用原生JS也能实现:

document.querySelectorAll('abbr.small').forEach(el => {
  const title = el.getAttribute('data-original-title');
  if (title) {
    el.setAttribute('data-original-title', title.replace(/<br\s*\/?>/gi, ''));
  }
});

CSS的局限性

CSS没法直接修改HTML属性值,只能对伪元素的content做简单样式处理,没法过滤掉属性里的<br>标签。如果JS执行时机有问题,只能用CSS应急(比如强制不换行),但这没法彻底解决问题:

abbr.small::after {
  content: attr(data-original-title);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

优先推荐用JS方案直接修改属性值,这是最彻底的解决办法。

内容的提问来源于stack exchange,提问作者Daniel Herrmann

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:02:55