这应该比现在容易得多,但它让我卡住了。
我将一些 JSON 放在输入数据属性中,第一个键上的引号关闭了属性。
这是我正在尝试做的:
var html = `<input type="checkbox" data-values='${dataVals}' />`;
其中dataVals就是这样一个JSON字符串
'{"checked":true,"unchecked":false}'
但它在浏览器中显示如下:
<input type="checkbox" data-values="{"checked":true,"unchecked":false}">
浏览器基本上就像是这样读取它。
data-values="{"
这显然不是我想要的。
我显然遗漏了什么。有什么想法吗?
最佳答案
@T.J. 的组合克劳德和@Teemu
我在json字符串末尾添加了一个replace,用"
JSON.stringify({ ... }).replace(/\"/g, """)
然后当我想稍后获取值时也停止尝试运行 JSON.parse(),因为 $.data('values') 已经返回了一个 javascript 对象(当它可以时)。
JSON.parse($(this).data('values')) => $(this).data('values')
关于javascript - 为什么浏览器将我的单引号更改为双引号并破坏数据属性中的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46410748/