Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取HTML未解释的HTML元素的原始文本内容_Javascript_Html - Fatal编程技术网

Javascript 获取HTML未解释的HTML元素的原始文本内容

Javascript 获取HTML未解释的HTML元素的原始文本内容,javascript,html,Javascript,Html,我已经用谷歌搜索出了我的大脑,但不知道如何让它工作。以下是我想做的: HTML: 所有这些警报都将“解释并返回结果字符串中的”。我想获得未解释的“原始文本 他们都回来了: "Hi, my name is.." 当我想要得到: 有没有办法做到这一点?最好不要尝试使用正则表达式将“的每个实例替换为” 这是一个很长的故事,我试图这样做,但简单地使用replace()搜索和替换“的每个实例将是一个头痛的实现,因为需要进行其他正则表达式匹配/解析 提前感谢所有可以拯救我理智的Javascript向导 几

我已经用谷歌搜索出了我的大脑,但不知道如何让它工作。以下是我想做的:

HTML:

所有这些警报都将
解释并返回结果字符串中的
。我想获得未解释的
原始文本

他们都回来了:

"Hi, my name is.."
当我想要得到:

有没有办法做到这一点?最好不要尝试使用正则表达式将
的每个实例替换为

这是一个很长的故事,我试图这样做,但简单地使用replace()搜索和替换
的每个实例将是一个头痛的实现,因为需要进行其他正则表达式匹配/解析


提前感谢所有可以拯救我理智的Javascript向导

几天前我准备了一个垃圾箱,采用了一些不同的方法:

我最喜欢的:

var text = "<a href='#' title=\"Foo\"></a>");
var html = text.replace(/[<&>'"]/g, function(c) {
  return "&#" + c.charCodeAt() + ";";
});
var text=”“);
var html=text.replace(/['“]/g,函数(c){
返回“&#”+c.charCodeAt()+“;”;
});
引用

当您向浏览器请求元素节点的innerHTML时,浏览器不会这样做 为您提供原始的HTML源代码,该源代码经过解析后生成 节点,因为它不再具有该信息。相反,它生成 从存储在DOM中的数据创建新的HTML。由浏览器决定如何创建 要格式化HTML序列化,不同的浏览器会生成 不同的HTML,很可能它的格式化方式不同 原来是这样

总之:
innerHTML/innerText/text/textContent/nodeValue/indexOf
,它们都不会提供未分析的文本


唯一可行的方法是使用regex,或者您可以在页面本身上发布ajax帖子,但这是一种不好的做法。

注意:id属性
中缺少的引号应该是
,抱歉,这是无法做到的。好吧,一旦浏览器解析字符实体代码,
之间就没有区别了。”
@JakeZeitz不太可能;)引用是有帮助的,但并非总是必要的…@yckart有趣的是,我一直认为它们是必需的。这可能仍然是一种很好的做法them@JakeZeitz是的,我同意!但是为了正确,我需要纠正你;)好。。谢谢你至少结束了我想弄明白这一点的努力。我真的担心这可能就是答案。我想我必须回到使用Javascript的痛苦瘫痪的正则表达式引擎来使用蛮力强制一些正则表达式魔法的时代了哈哈。。非常感谢,先生。
"Hi, my name is.."
&quot;Hi, my name is..&quot;
var text = "<a href='#' title=\"Foo\"></a>");
var html = text.replace(/[<&>'"]/g, function(c) {
  return "&#" + c.charCodeAt() + ";";
});