我一直在寻找一天左右如何使用JS或jQuery做些什么,并找到了几个解决方案,但还没有什么可靠的。
我想用这个:
<code class="codeIt">
<h2> This is an H2 </h2>
</code>
我希望输出为:
<h2> This is an H2 </h2>
我知道我可以做到这一点:
<code class="codeIt">
<h2> This is an H2 </h2>
</code>
...但我不想手动搜索并替换我在这些块中的代码,而是在浏览器中动态完成。这可能吗?
我很喜欢jQuery,所以我尝试了.replaceWith
或JavaScript的.replace
,但到目前为止,我还没有得到它需要的地方。我正在替换整个标签或做其他错误。
我的问题是:我如何编写一个简单的jQuery(或常规JS)来帮助我用<
和{{1}等HTML实体替换我的>
和<
在我的>
标签内。
我感谢任何帮助,谢谢。
我设法让它工作得很好@Prisoner如何解释,它非常漂亮,但是在我的特殊情况下需要稍微扩展,因为我有<code>
类的多个代码块,所以我有使它检查每个元素和输出...否则它将继续产生相同的输出(如第一个块)
感谢大家的回答。
答案 0 :(得分:5)
单个code
元素的简单JS
var myCode = document.getElementById('mycode');
myCode.innerHTML = myCode.innerHTML.replace(/</g,'<').replace(/>/g,'>')
普通JS用于多个code
元素
var codeEls = document.getElementsByTagName('code');
for(var i in codeEls)
{
if(parseInt(i)==i)
{
var codeEl = codeEls[i];
if(codeEl.className.match(/\bcodeIt\b/)!==null) codeEl.innerHTML = codeEl.innerHTML.replace(/</g,'<').replace(/>/g,'>')
}
}
或jQuery
$(".codeIt").each(function() {
$(this).html(
$(this).html().replace(/</g,'<').replace(/>/g,'>')
);
});
答案 1 :(得分:5)
假设您只想转义所有HTML:
$(".codeIt").text($(".codeIt").html());
答案 2 :(得分:1)
您可以使用jquery的文本功能:
var myText = $('.codeIt').html();
var escapedText = $('.codeIt').text(myText).html();
答案 3 :(得分:1)
var t = $('.codeIt').html();
$('.codeIt').text(t).html();
看看这个小提琴http://jsfiddle.net/kU8bV/1/
答案 4 :(得分:0)
$('code').html($('code').html().replace(/</g, '<').replace(/>/g, '>'));
答案 5 :(得分:0)
假设您要编码codeIt类中的所有html:
<script type="text/javascript">
function htmlEncode(value){
if (value) {
return jQuery('<div />').text(value).html();
} else {
return '';
}
}
function htmlDecode(value) {
if (value) {
return $('<div />').html(value).text();
} else {
return '';
}
}
$('.codeIt').each(function() {
myEncodedString = htmlEncode($(this).html());
$(this).html(myEncodedString);
});
</script>