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

jQuery全局替换字符串,但不替换Title或Alt属性中的字符串,jquery,string,replace,html,Jquery,String,Replace,Html,我编写了一些jQuery,它循环遍历div中的所有元素,并通过使用and标记替换和设置特定字符串的样式,效果很好,代码如下: var regex = /some text/gi; $(".container *").each(function () { $(this).html($(this).html().replace(regex, '<em><strong>Some</strong> Text</em>')); }); 我的问题是,

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

var regex = /some text/gi;
$(".container *").each(function () {
    $(this).html($(this).html().replace(regex, '<em><strong>Some</strong> Text</em>'));
});
我的问题是,这也会影响所有Title和Alt属性中的文本,我不希望这样,因为它们无法设置样式,最终会显示为一些文本

我曾尝试在替换之前将原始Title/Alt值存储在变量中,然后在替换之后将其设置回原始值,但当属性值包含和标记时,它们似乎完全不可访问。我甚至不能删除它们并将它们重新添加,这看起来真的很奇怪


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

您尝试过$this.text.replace而不是$this.html.replace吗


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

是的,我试过了,但它基本上破坏了一切,所以我只剩下一整页纯文本。啊,很抱歉,这个答案应该可以解决问题:这是原始帖子:谢谢,尽管我仍然无法在没有包含和标记的情况下一次针对每个元素。如果我只针对一个特定的元素,例如,,等等,效果很好,但是当我试图通过使用.container*之类的东西来针对所有元素时,直接子元素会被替换,但子元素会出错。使用我原来的方法时也会发生同样的情况。你知道有没有一种方法可以针对所有的事情,包括子孩子,还是我只需要单独做每一件事?