1

我编写了一些 jQuery,它循环遍历 div 中的所有元素,并仅使用 <em> 和 <strong> 标签替换和设置特定字符串的样式,效果很好,代码如下:

var regex = /some text/gi;
$(".container *").each(function () {
    $(this).html($(this).html().replace(regex, '<em><strong>Some</strong> Text</em>'));
});

我遇到的问题是这也会影响所有 Title 和 Alt 属性中的文本,这是我不想要的,因为它们无法设置样式并且最终显示为 <em><strong>Some</strong>文字</em>。

我尝试在替换之前将原始 Title/Alt 值存储在变量中,然后将它们设置回原始值,但似乎当属性值包含 <em> 和 <strong> 标记时,它们完全无法访问. 我什至无法删除它们并将它们重新添加,这看起来很奇怪。

谁能告诉我是否有办法解决这个问题?

4

1 回答 1

0

而不是 $(this).html().replace,您是否尝试过 $(this).text().replace?

这样你只替换元素的实际文本而不是所有的 html。

于 2013-07-02T13:23:59.847 回答