为什么JavaScript会转换我的<;进入&;燃气轮机;

为什么JavaScript会转换我的<;进入&;燃气轮机;,javascript,Javascript,JavaScript将我的?>?>{>@#$#^#$ 为什么单击时会显示以下内容: “ 一些带有特殊字符的字符串:~!@#amp;*()}{???>|…等等 " 函数alertIt(ID) { var ID=ID; var content=document.getElementById(ID).innerHTML; 警报(内容); } 您的问题是,您使用了错误的方法使文本以警报()显示。 某些字符在HTML文本中是非法的(它们用于HTML标记和实体)。innerHTML将确保正确转义文本(即,您

JavaScript将我的
?>?>{>@#$#^#$

为什么单击时会显示以下内容:


一些带有特殊字符的字符串:~!@#amp;*()}{???>|…等等
"

函数alertIt(ID) { var ID=ID; var content=document.getElementById(ID).innerHTML; 警报(内容); }
您的问题是,您使用了错误的方法使文本以
警报()显示。

某些字符在HTML文本中是非法的(它们用于HTML标记和实体)。
innerHTML
将确保正确转义文本(即,您可以看到标记和转义文本)

如果您想在
alert()
中查看标记和文本,则没有解决方案

如果您只需要文本,那么您必须自己提取文本。没有内置的支持。实现它也不是很简单。我建议将其包含在页面中;然后您可以使用以下工具获取文本:

function alertIt(ID) {
    alert($(ID).text());
}

使用
innerText
而不是
innerHTML

使用
textContent
安装的
innerHTML
innerText
是一种解决方案。

您的原始内容不是有效的HTML。@Wooble这不是我问题的asnwer,这就是为什么我将其作为注释而不是答案发布的原因。但结果是JS不能将其视为HTML,而不首先应用某种将其转换为HTML的方法。出于历史原因,浏览器不会完全拒绝显示页面,并抛出一条巨大的错误消息,告诉用户他们已导航到一个已损坏的页面。它的
未定义
(对于Firefox)是的,您可能需要跨浏览器进行规范化。类似于
innerText | | textContent
。请参阅
function alertIt(ID) {
    alert($(ID).text());
}