javascript - 提取包含文本节点的 HTML,而不对其进行编码

标签 javascript jquery html encode

我有以下 HTML:

var html = jQuery('#parent').html();
console.log(html)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">
  <div id="child"></div>
  5 > 3
</div>

我执行 jQuery('#parent').html(); 并得到以下字符串:

'<div id="child"></div>
 5 &gt; 3'

我想得到以下字符串:

'<div id="child"></div>
 5 > 3'

我如何实现这一目标?

请注意,我不会提前知道文本节点的值。我只是不想将文本节点的值(如果存在)编码为某些 html 实体名称。

此问题与 How to decode HTML entities using jQuery? 不重复因为上述帖子没有回答这个问题

当前的问题不是如何将 > 这样的 html 实体名称解码为 >。这很容易。

当前的问题是关于提取可能包含文本节点的HTML,这些文本节点可能包含可编码值,并且我不希望对这些值中的任何一个进行格式化/编码无论如何。

最佳答案

尝试一下,强制 jQuery 对不会附加到 DOM 的元素上的 html 进行解码。

var html = jQuery('<textarea/>').html(jQuery('#parent').html()).text();

console.log(html)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="parent">
  <div id="child"></div>
  5 > 3
</div>

关于javascript - 提取包含文本节点的 HTML,而不对其进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47473189/

相关文章:

javascript - Anim.js - 当我只想触发悬停元素时输入什么作为目标

javascript - 当移动方向从横向变为纵向时,窗口元素不适合窗口?

javascript - 使用鼠标滚动实现无限图像

javascript - 在 Google Chrome 中正确打印 PDF

jquery - jqplot - 使用图像作为刻度

javascript - 在 Javascript 中对具有多个值的数组进行排序

html - 从 URL 渲染图像并可点击

html - 选择以类名开头并包含部分字符串的元素

javascript - Angular Material 从 $mdDialog 获取数据并按索引将其传递到表中

JavaScript 自动更改 src 和 []