获取HTML元素的原始文本内容并取消解释

Tre*_*rey 6 html javascript

我已经用脑子搜索了我的脑筋,无法弄清楚如何使这项工作.这是我正在尝试做的事情:

HTML:

<div id=derp>&quot;Hi, my name is..&quot;</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var div = document.getElementById('derp');
alert(div.innerHTML);
alert(div.innerText);
alert(div.textContent);
Run Code Online (Sandbox Code Playgroud)

所有这些警报都解释并返回结果字符串中的&quot;as ".我希望得到&quot;未经解释的原始文本.

他们都回归:

"Hi, my name is.."
Run Code Online (Sandbox Code Playgroud)

当我想得到:

&quot;Hi, my name is..&quot;
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?最好不试图用一个正则表达式替换的每一个实例"&quot;.

这是我要做的事情的一个长篇故事,但"由于需要进行其他正则表达式匹配/解析,仅仅使用replace()来搜索和替换每个实例都会很难实现.

在此先感谢任何可以保存我的理智的Javascript向导!

gki*_*ely 9

引用bobince

当您向浏览器询问元素节点的innerHTML时,它不会为您提供解析为生成该节点的原始HTML源,因为它不再具有该信息.相反,它从存储在DOM中的数据生成新的HTML.浏览器决定如何格式化HTML序列化; 不同的浏览器会生成不同的HTML,并且可能与您最初格式化的方式不同.

总结:innerHTML/innerText/text/textContent/nodeValue/indexOf,他们都不会给你未解析的文本.

唯一可行的方法是使用正则表达式,或者你可以对页面本身进行ajax发布,但这是一种不好的做法.

  • 嗯..感谢至少结束我的想法.我真的害怕这可能是答案.猜猜我将不得不回到粗暴地使用Javascript痛苦瘫痪的正则表达式引擎强制一些正则表达式魔法哈哈..非常感谢,先生. (2认同)