我们在用js或者jquery来进行前端开发的时候有时候会遇到要给动态创建的元素以对象作为属性值的属性。HTML里面属性值必须加引号,这就意味着属性值一般情况下是字符串,那么直接将对象加进去肯定是不行的,这时候首先就想到JSON.stringify()转成字符串了,试了一下发现不行,原因是转换之后字符串里面包含了原对象的引号,和属性值之前的引号闭合导致报错了,这时候我们要做的就是把原对象转换后的字符串引号替换成转义字符,解决如下:
1.将对象作为属性值添加
let data = { "name":"linhoon", "desc":"oldMan!" };
/*
1.用JSON.stringify()方法将对象转换成字符串
2.然后用replace()方法将"用转义字符"来替换掉
**/
let sonDiv = '<div data="'+JSON.stringify(data).replace(/"/g, '"')+'"></div>';
$(parentDiv).append(sonDiv);
2.获取属性值对象
let data = JSON.parse($(sonDiv).attr('row');