我想通过jQuery在data-
属性中添加和存储json。
问题是:当我添加包含json和转义双引号的属性时,它会添加精确的"
而不是转义的双引号。
输出:
<div data-myjson="{"number":"1"}"></div>
预期:浏览器应将"
视为双引号,而不是普通字符
<div data-myjson="{"number":"1"}"></div> // with escaped inner quotes
我的jquery
$("div").attr("data-myjson", "{"number":"1"}");
如何在HTML本身中添加实际转义的双引号?
答案 0 :(得分:0)
如何使用JSON.stringify(和JSON.parse来提取)?
var o = {"number":"1"};
$("div").attr("data-myjson", JSON.stringify(o));
答案 1 :(得分:0)
除非我误解,如果包含var str = '{"number":"1"}';
$("div").attr("data-myjson", $('<div/>').html(str).text());
的文本是如上所述的纯字符串,那么如何解码它:
{{1}}
答案 2 :(得分:0)
由于attr
采用字符串值(而不是&#34; HTML&#34;),只需使用单引号('
)然后传入实际 [JSON]值:
$("div").attr("data-myjson", '{"number":"1"}');
HTML实体(包括"e;
)未在CDATA部分中处理,例如<script>
标记的内容。
术语nit:attr
更新[HTML] DOM,它是表示文档的树图,但不是更新DOM最初解析的HTML源/文本。只有少数功能如html
考虑数据&#34; as&#34; HTML。