我编写了一些循环遍历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;标签他们完全无法访问。我甚至无法将它们删除并重新添加,这看起来很奇怪。
有人可以告诉我有没有办法解决这个问题?
答案 0 :(得分:0)
而不是$(this).html()。replace,你试过$(this).text()。replace吗?
这样你只能替换元素的实际文本而不是所有的html。