将HTML属性转换为Javascript对象
我在将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)那样
<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);