我有一个myArray =
元素,其中包含以下文字:
<span>
当我使用jQuery获取其List<Tuple<string, string>>
属性时,我得到一个奇怪的结果:
html
我意识到它将值解析为HTML,但使用List<tuple<string, string="">></tuple<string,>
也会返回不正确的值。
任何人都可以解释为什么会这样,我该如何解决?
这是一个重现问题的片段:
.text()
&#13;
console.log($('#lbl').html());
&#13;
答案 0 :(得分:3)
为什么会发生这种情况:因为您的HTML无效。除分隔标记外,您不应使用<
或>
个字符。相反,您必须分别使用<
和>
。您的浏览器会尝试对此类错误保持健壮,因此它会尝试理解那些看起来很奇怪的标记。你得到的结果是它可以做的最好的结果(但另一个浏览器可能会有不同的解释,因为这不是标准的)。
如何解决它:将其写为正确的HTML,即:
<span id="lbl">List<Tuple<string, string>></span>
答案 1 :(得分:1)
您需要将<
替换为'<'
,将>
替换为'>'
,以html显示。
console.log($('#lbl').html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="lbl">List<Tuple<string, string>></span>
答案 2 :(得分:0)
var x = document.createElement("span");
x.innerText = "List<Tuple<string, string>>";
document.getElementById("parent").append(x);
console.log("Text : " +document.getElementsByTagName("span")[0].innerText);
console.log("HTML : " +document.getElementsByTagName("span")[0].innerHTML);
<div id="parent">
</div>
问题似乎在于撰写文本。浏览器首先渲染它,似乎是转换字符。