有html代码:<p id="content">—<p>
.
输出应该是<p id="content">—<p>
或 —
.
我试图在下面得到它,但它的结果只有—
?
document.writeln("Output:");
document.writeln(document.getElementById("content").innerHTML);
document.writeln(document.getElementById("content").innerText);
document.writeln(document.getElementById("content").outerHTML);
document.writeln(document.getElementById("content").outerHTML);
document.writeln(document.getElementById("content").textContent);
<p id="content">—<p>
如何通过JavaScript(或框架)实现如输出?是否可以?
最佳答案
这是不可能的。这是一个示例,输出到控制台而不是页面。您必须查看控制台才能看到输出。 我接着解释。
<!DOCTYPE html>
<html>
<head>
<title>Test JS entity capture</title>
</head>
<body>
<p>
From <em>"How can get original content(with ascii codes) from element?"</em><br>
<code>http://stackoverflow.com/questions/32803029/</code>
</p>
<p id="targetP">
This is <code>&mdash;</code> : <span id="mdash">—</span>
</p>
</body>
<script>
var elm = document.getElementById('mdash');
console.log('elm.innerHTML = ' + elm.innerHTML);
console.log('elm.innerText = ' + elm.innerText);
</script>
</html>
会发生什么?
服务器发送源 HTML 和可能单独的 javascript。
浏览器解析 HTML 并构建 DOM 树(文档对象模型)。
当它解析 HTML 时,它会将字符实体引用 —
转换为引用所代表的实际字符;现在 DOM 包含字符 —
,当您使用 javascript 获取该元素的 innerText
或 innerHTML
时,您将获取该字符。您无法知道该字符是键入的(就像我刚才键入的:在 Mac 上键入 shift+option+dash)还是最初作为字符实体发送。
关于javascript - 如何从元素中获取原始内容(带有ascii码)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803029/