Mul*_*lki 3 javascript jquery json
我正在尝试将数据属性添加到html元素.data属性(数据描述)可以包含像apostrope这样的特殊字符.
InsertHtml = InsertHtml + '<tr id="DashboardRow0" data-description=\'' + JSON.stringify(data[0])+ '\'><td>' + </td></tr>';
htmlElement.append(InsertHtml);
Run Code Online (Sandbox Code Playgroud)
访问此数据的代码如下:
var $row = $("#DashboardRow0");
var jsonData = eval('(' + $row.attr('data-description') + ')');
Run Code Online (Sandbox Code Playgroud)
但问题是......如果数据中存在单个撇号,JSON.stringify(data[0])则浏览器会用"有效终止字符串替换它.
是否有任何已知的解决方案将特殊字符的数据属性添加到节点?
尝试在stringify之前转义数据
data[0].myProblemField = escape(data[0].myProblemField)
JSON.stringify(data[0])
Run Code Online (Sandbox Code Playgroud)
<edit>
或更好
for(var prop in data[0]) if(typeof(data[0][prop]) == "string")
data[0][prop] = escape(data[0][prop]);
Run Code Online (Sandbox Code Playgroud)
</编辑>
然后
var jsonData = eval('(' + $row.attr('data-description') + ')');
jsonData.myProblemField = unescape(data[0].myProblemField)
Run Code Online (Sandbox Code Playgroud)