1
4

3 回答 3

2

最好使用data-jquery. 所有data-属性都旨在添加额外的数据(它是 HTML5 规范的一部分)。浏览器不会抱怨。

只需确保转义代码以避免使用问题escape(),然后unescape()在解析 JSON 之前使用。

于 2013-09-06T23:03:00.307 回答
0

关于发明自己的标签的正确约定是在它们前面加上“data-”,比如“data-jquery-data”。然后,您需要更改代码以使用target.data("jquery-data").

另一点是,如果要解析的字符串不是 JSON,$.parseJSON 会抛出异常。所以你会想做类似的事情

var data;
try { 
    data = $.parseJSON(target.data('jquery-data'));
} catch() {
    if(data) {
        console.log(data);
    }   
}

除此之外,我认为应该还可以。

于 2013-09-06T23:07:47.497 回答
0

您可以对对象进行 base64 编码,然后进行解码。这可能不是最精简的方式,但它确实可以完成工作。您需要一个 b64 编码和解码功能

<a data-json="eydkYXRhJzogJ3ZhbHVlJ30="></a>
var json = JSON.parse(b64Decode(object.getAttribute('data-json')));
Console.log(Object.keys(json));
于 2013-09-06T23:21:25.413 回答