我想在html网站上显示Java源代码。
当我逃脱所有>和<在将代码粘贴到html之前,它显然有效,一切都正确显示。
当我不这样做时,HashMap会显示如下:
HashMapclass="string">"">> map = new HashMap<>();
应该是
HashMap<String, ArrayList<String>> map = new HashMap<>();
当我使用JQuery的text()方法并将结果打印到控制台时,我得到了这个:
HashMap> map = new HashMap<>();
当我使用html()方法时,我得到了这个:
HashMap<string, arraylist<string="">> map = new HashMap<>();
我应该如何从代码元素中检索文本,以便我可以正确地转义&gt;和
使用XML源代码做同样的事情。我用
$(this).html()
获取代码中的文本 - 元素然后转义字符。然后,XML将显示标签而不仅仅是文本。
答案 0 :(得分:1)
如果您在html中插入如下行:
<code id="okai">HashMap<String, ArrayList<String>> map = new HashMap<>();</code>
您必须了解HTML会将"<String"
视为新标记的开头,并且由于没有相应的结束标记(即:</String>
),html代码将呈现在:
HashMap> map = new HashMap<>();
如果你看一下开发工具(在Chrome中按F12),你会理解我的意图:在代码标签中你现在有两个标签:一个字符串和另一个错误的标签。
如果您在脚本中编写</script>
标记,则会出现同样的问题(请参阅:http://stackoverflow.com/questions/236073/why-split-the-script-tag-when-writing-it-with-document-write
)。
所以没有必要继续使用text或html jquery函数,因为htt解释器刚改变了imput html。
要在html页面中插入java源代码,我更喜欢这样的方式:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery-1.11.2.js"></script>
<script src="jquery-ui.js"></script>
<script type="application/javascript">
$(function() {
var newTxt = $('#myCodeId').html().replace('<!--', '').replace('-->', '');
$('#myCodeId').text(newTxt);
});
</script>
</head>
<body>
<code id="myCodeId"><!--HashMap<String, ArrayList<String>> map = new HashMap<>();--></code>
</body>
</html>