jQuery全局替换字符串,但不在Title或Alt属性中

时间:2013-07-02 13:20:32

标签: jquery string replace html

我编写了一些循环遍历div中所有元素的jQuery,只需使用< em>替换并设置特定字符串的样式。和< strong>标签,工作正常,代码是这样的:

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

我遇到的问题是,这也影响了所有Title和Alt属性中的文本,我不想要这些属性,因为它们无法设置样式,并且字面上最终显示为&lt; em&gt;&lt; strong&gt;一些&LT; /强&GT;文字&lt; / EM&GT;

我已尝试将原始的Title / Alt值存储在变量中,然后再将它们设置回原始值,但似乎当属性值包含&lt; em&gt;时和&lt; strong&gt;标签他们完全无法访问。我甚至无法将它们删除并重新添加,这看起来很奇怪。

有人可以告诉我有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

而不是$(this).html()。replace,你试过$(this).text()。replace吗?

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