将粗体标签添加到html字符串中

时间:2013-10-09 20:37:45

标签: javascript jquery html string

我在javascript / jquery中有一串html。

var str = '<div id="cheese" class="appleSauce"> I like <a href="apple.com"> apple </a> and cheese</div>';

我想把字符串'apple'加粗。所以我这样做:

str = str.replace('apple','<b>apple</b>');

但这打破了字符串的html部分。我明白了:

<div id="cheese" class="<b>apple</b>Sauce"> I like <a href="<b>apple</b>.com"><b>apple</b></a> and cheese</div>

如何在不改变html标记内部匹配的情况下替换html字符串文本中出现的所有字符串?

3 个答案:

答案 0 :(得分:1)

在这种情况下创建一个元素jQuery元素,并设置innerHTML属性:

var el = $('<div id="cheese" class="appleSauce"> I like apple and cheese</div>');

el.html(el.html().replace('apple','<b>apple</b>'));

答案 1 :(得分:1)

var e = $('#cheese');
e.html(e.text().replace('apple','<b>apple</b>'));

Working Fiddle

答案 2 :(得分:0)

你可以这样做

var str=str.replace(new RegExp(/(apple)$/),"<b>apple</b>");