> map = new HashMap<>(); 应该是 HashMap> map = ne-6ren">
gpt4 book ai didi

javascript - 使用 JQuery 从带有未转义 < 和 > 的代码元素中检索文本

转载 作者:行者123 更新时间:2023-12-03 08:20:37 25 4
gpt4 key购买 nike

我想在 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="">&gt; map = new HashMap&lt;&gt;();

我应该如何从代码元素中检索文本,以便我可以正确转义 > 和

对 XML 源代码执行相同的操作也是可行的。我用的是

$(this).html()

获取code-Element中的文本,然后转义字符。然后,XML 将与标签一起显示,而不仅仅是文本。

最佳答案

如果您在 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)。

因此无需继续处理文本或 html jquery 函数,因为输入 html 已被 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>

关于javascript - 使用 JQuery 从带有未转义 < 和 > 的代码元素中检索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33763799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com