2015-05-14 26 views
1

我用带标记的单词替换了部分div(即内容可编辑)。它不仅仅显示新词的内容,还显示标签。替换的字符串显示窗口中的标记

这里的div的原始内容:

这是<DIV>标签里面,我想替换这个[var12]

这是怎么了我倒是喜欢看:

这是<DIV>标签里面,我想替换这个var12

然而,它结束了看起来像这样:

这是<DIV>标签里面,我想替换这个<跨度> var12 </SPAN >

这是我使用的代码:

var pattern = new RegExp("\\[\\[var[0-9]*\\]\\]") 
if ($(this).text().match(pattern)) { 
    var match = $(this).text().match(pattern); 
    var num = match.toString().match(/[0-9]+/); 
    var tagged = '<span class="variable">VAR ' + num + '</span>'; 
    $(this).text($(this).text().replace(pattern, tagged));  
} 

回答

4

看起来像这样,因为你已经明确告诉它通过使用.text()来转义html。如果你想插入html,你可以使用.html()

$(this).html($(this).text().replace(pattern, tagged)); 

.text() docs

我们需要注意,这种方法逃脱,根据需要设置,使其在HTML正确地呈现字符串。为此,它调用DOM方法.createTextNode(),不会将该字符串解释为HTML。

+0

谢谢!!!!马上就像魅力一样工作。 –

+0

@jKo简易修复通常是最好的:) –