Javascript 在不丢失html格式的情况下,将特定单词以跨距包装在标题中

Javascript 在不丢失html格式的情况下,将特定单词以跨距包装在标题中,javascript,jquery,html,Javascript,Jquery,Html,我试图使用以下命令将fubar的所有实例包装在任何标题中,并使用一个跨度: jQuery('h1, h2, h3, h4, h5, h6').each(function(){ var located = jQuery(this).text().replace(/fubar/g,"<span class='myspan'>fubar</span>"); jQuery(this).html(located); }); 变成: <

我试图使用以下命令将
fubar
的所有实例包装在任何标题中,并使用一个跨度:

jQuery('h1, h2, h3, h4, h5, h6').each(function(){
        var located = jQuery(this).text().replace(/fubar/g,"<span class='myspan'>fubar</span>");
        jQuery(this).html(located);
    });
变成:

<h1>this is <span class="myclass">fubar</span></h1>
使用
html()
获取元素的内部html并替换其中出现的内容:

$('h1,h2,h3,h4,h5,h6')。每个(函数(){
var located=$(this.html().replace(/fubar/g,“fubar”);
$(this).html(位于);
});

一个选项是
查找
:包含(fubar)
的所有子项,并循环浏览和更改文本

jQuery('h1,h2,h3,h4,h5,h6')。每个(函数(){
jQuery(this).find(':contains(fubar)').each(function(){
var located=$(this.text().replace(/fubar/g,“fubar”);
$(this).html(位于)
});
});


你不能直接使用
.html()
而不是
.text()
?@Huangism有时“fubar”也可能在a href属性中。我相信有一种方法可以使用jsp抓取标签之间的所有内容谢谢!。有没有办法防止href属性中的“fubar”也被替换?e、 g.“fubar”的两个实例都被替换(文本和href属性)。谢谢!。有没有办法防止href属性中的“fubar”也被替换?e、 g.“fubar”的两个实例都被替换(文本和href属性)乐意帮助:)
<h1><a href="#">this is fubar</a></h1>
<h1>this is <span class="myclass">fubar</span></h1>
<h1><a href="#/this-is-fubar">this is fubar</a></h1>