我发现,当我们使用API函数从表对象中获取值时,'&'等html特殊字符不会被解码,而是以ASCII或Unicode格式呈现。这是我对dataTable的简单初始化。
var otable = $('#vtable').DataTable({
"dom": '<"top"lBf<"clear">>rt<"bottom"ip<"clear">>'
});
请参阅此Fiddle。
之前解码html特殊字符的最佳解决方案是什么? 将它传递给数据处理?
答案 0 :(得分:1)
对HTML实体进行编码:
var valEncoded = $('<div>').text(val).html();
解码HTML实体:
var valDecoded = $('<div>').html(val).text();
请参阅this example以获取代码和演示。
请参阅updated jsFiddle,了解如何在项目中使用它。
答案 1 :(得分:0)
使用Stackoverflow的this answer,问题的解决方案是下面的函数来解码一行数据中的html字符。
function decodeHtml(str) {
var map =
{
'&': '&',
'<': '<',
'>': '>',
'"': '"',
''': "'"
};
return str.replace(/&|<|>|"|'/g, function (m) { return map[m];
});
}