我如何使用jQuery解码字符串中的HTML实体?
当前回答
最简单的方法是为你的元素设置一个类选择器,然后使用以下代码:
$(function(){
$('.classSelector').each(function(a, b){
$(b).html($(b).text());
});
});
什么都不需要了!
我有这个问题,找到了这个清晰的解决方案,它工作得很好。
其他回答
假设下面有String。
我们的豪华客舱温暖,舒适&舒适的
var str = $("p").text(); // get the text from <p> tag
$('p').html(str).text(); // Now,decode html entities in your variable i.e
STR和赋值回给标签。 就是这样。
这里还有一个问题: 转义字符串分配给输入值时看起来不可读
var string = _.escape("<img src=fake onerror=alert('boo!')>");
$('input').val(string);
Exapmle: https://jsfiddle.net/kjpdwmqa/3/
试试这个:
var htmlEntities =“<脚本> alert(‘你好’);< /脚本>” html var =$.parseHTML(html)[0][wholeText]; 控制台日志(htmlDecode); <剧本剧本src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < / >
parseHTML是Jquery库中的一个函数,它将返回一个包含给定字符串的一些细节的数组。
在某些情况下字符串很大,所以函数会将内容分离到多个索引中。
要获得所有索引数据,你应该去任何索引,然后访问名为“wholeText”的索引。
我选择索引0,因为它将在所有情况下工作(小字符串或大字符串)。
这个问题受到“用jQuery”的限制,但它可能会帮助一些人知道,在这里给出的最佳答案的jQuery代码下面做了以下工作…使用或不使用jQuery都可以:
function decodeEntities(input) {
var y = document.createElement('textarea');
y.innerHTML = input;
return y.value;
}
安全注意:使用这个答案(下面保留其原始形式)可能会在您的应用程序中引入XSS漏洞。你不应该用这个答案。阅读lucascaro对这个答案中漏洞的解释,并使用该答案或Mark Amery的答案中的方法。
实际上,试一试
var encodedStr = "This is fun &东西”; var解码= $ (" < div / > ") . html (encodedStr)。text (); console.log(解码); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本> < div / >
推荐文章
- 使伸缩项目正确浮动
- Babel 6改变了它导出默认值的方式
- 如何配置历史记录?
- ES6模板文字可以在运行时被替换(或重用)吗?
- [Vue警告]:找不到元素
- 可以在setInterval()内部调用clearInterval()吗?
- AngularJS控制器的生命周期是什么?
- 无法读取未定义的属性“msie”- jQuery工具
- 形式内联内的形式水平在twitter bootstrap?
- 我的蛋蛋怎么不见了?
- JavaScript中的排列?
- 自定义元素在HTML5中有效吗?
- JavaScript中有睡眠/暂停/等待功能吗?
- 如何触发自动填充在谷歌Chrome?
- jQuery:执行同步AJAX请求