将HTML属性转换为Javascript对象

将HTML属性转换为Javascript对象,javascript,jquery,json,Javascript,Jquery,Json,我在将HTML数据属性转换为Javascript对象时遇到问题 以下是我的工作: 该属性看起来像: <a id="stringObj" data-string="{'Foo':'Bar'}">Some A-Tag</a> 我只是使用了JSON.stringify方法来获得清晰的结果,但这并不重要。我还在结果上尝试了“eval”,但在console.log(typeof obj)test上它一直是一个“字符串” 如何从属性中获取对象,以便像alert(obj.Foo)那样

我在将HTML数据属性转换为Javascript对象时遇到问题

以下是我的工作:

该属性看起来像:

<a id="stringObj" data-string="{'Foo':'Bar'}">Some A-Tag</a>
我只是使用了JSON.stringify方法来获得清晰的结果,但这并不重要。我还在结果上尝试了“eval”,但在
console.log(typeof obj)
test上它一直是一个“字符串”

如何从属性中获取对象,以便像
alert(obj.Foo)那样使用它

您可以这样做:

您可以这样做:


当您使用
jQuery.data()
时,默认情况下,当您使用有效的JSON时,它会将其作为对象返回。如果可能,请尝试交换

$(函数(){
var数据=$(“#stringObj”).data(“string”);
console.log(数据类型);
console.log(data.Foo);
});


当您使用
jQuery.data()
时,某些A标记将默认作为对象返回,当您使用有效的JSON时。如果可能,请尝试交换

$(函数(){
var数据=$(“#stringObj”).data(“string”);
console.log(数据类型);
console.log(data.Foo);
});


我刚刚删除了JSON.stringify,它现在可以工作了。
当然,我之前测试过几次都没有成功,但它确实有效,原因是:D-谢谢大家。

我刚刚删除了JSON.stringify,现在它仍然有效。
当然,我之前已经测试了好几次,但都没有成功,但它确实有效,原因是:D-谢谢大家。

您也可以在不使用jQuery的情况下进行

var stringAttr = document.getElementById("stringObj").dataset.string.replace(/'/g,"\"");
var myObj = JSON.parse(stringAttr);
console.log(myObj.Foo);

您也可以在不使用jQuery的情况下执行此操作:

var stringAttr = document.getElementById("stringObj").dataset.string.replace(/'/g,"\"");
var myObj = JSON.parse(stringAttr);
console.log(myObj.Foo);

有一个更好的方法<代码>:)
交换引号。。。看看我的答案。有一个更好的方法<代码>:)
交换引号。。。看看我的答案,你的引语是错误的。看看我的答案。你必须有一个有效的JSON…你的引用是错误的。看看我的答案。你必须有一个有效的JSON。。。
var stringAttr = document.getElementById("stringObj").dataset.string.replace(/'/g,"\"");
var myObj = JSON.parse(stringAttr);
console.log(myObj.Foo);