我正在尝试创建一种快速/肮脏的方法,以使用javascript在html中的pre / code标签上添加一些语法突出显示。
我遇到的问题是,如果我编辑text()或html(),我会得到转义的内容。也就是说,添加的标签呈现为pre / code,或者我得到了一堆逃逸字符。
考虑以下html:
<pre>
<code class="target">
public interface __iIFoo { }
public class __tBar : __iIFoo { }
var list = new List__/__iIFoo\__();
</code>
</pre>
这里的目标是用替换出现__iIFoo
:
<span class="interface">IFoo</span>
这样就可以用css突出显示它。当然,当它被渲染时,我不想看到实际的SPAN标签。
这是我尝试过的:
$(function(){
var iPatt = /__i\w+/g
$.each($(".target").text().match(iPatt), function(i,match){
var replace = '<span class="interface">'+match.substring(3)+'</span>';
$(".target").text(function(){
return $(this).text().replace(match, replace);
});
});
});
可以,但是,我要添加的span标签会显示在渲染的内容中,例如,它们与所有其他预编码一样。我不想看!
使用.html()
代替.text()
。当您使用时.text()
,该值是您希望用户看到的文字文本,因此它将特殊的HTML字符替换为实体,以便它们按字面显示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句