我有以下 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 > 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/