我想使用jquery转换包含& nbsp;等字符串的文本
等等,形成一种更易读的形式。这适用于jsfiddle:
<input id="stupid-approach" type="hidden">
function js_text(theVal) {
$("#stupid-approach").html(theVal);
x = $("#stupid-approach").html();
return x;
}
alert(js_text("é"));
但我想知道是否有办法不依赖于DOM中的隐藏字段?
答案 0 :(得分:8)
只需创建一个空元素,就不需要在DOM中有一个实际的隐藏元素:
function js_text(theVal) {
return $("<div />", {html: theVal}).text();
}
答案 1 :(得分:1)
考虑到有关jQuery的.html()方法对脚本标签的评估的反馈,这里是一个更安全的本机版本,并不太笨重:
function js_text(theVal) {
var div=document.createElement("div");
div.innerHTML=theVal;
return div.textContent;
}
当你不信任输入100%时,用它代替$(xxx).html()
答案 2 :(得分:0)
不。没有纯粹的程序化方法可以让浏览器将字符串视为HTML,就像在您的示例中一样。 (顺便说一下,当你这样做时要小心不受信任的输入 - 这是等待发生的注入攻击。)
答案 3 :(得分:0)
你应该能够做到:
return $('<div>'+ theVal + '</div>').html();