如何将字符串从div属性转换为对象

时间:2011-08-12 13:59:22

标签: javascript jquery object

我尝试将字符串转换为对象。我用:

var ec = $(".selector").attr('build'); // this return {abc:'one', bcm:'two', etc...}
var et = ec.abc // this return me undefined

我试试这种方式

var et = new Object(ec);
var t = et.abc // this return undefined

如何转换这个?

5 个答案:

答案 0 :(得分:5)

如果该属性包含恰好采用Json对象格式的string,则必须首先解析string以便能够以某种方式访问​​它的元素会和Json一起工作:

var ec = $(".selector").attr('build');
var myObject = JSON.parse(ec);
var et = myObject.abc;

当然,您可能希望在string周围添加验证,以确保它始终采用该形式,否则您可能会通过进行这些假设来遇到问题。

另外,是否有理由将Json字符串存储在HTML属性中?

答案 1 :(得分:1)

使用$.parse()方法

var et= $.parse($(".selector").attr('build'));
var t = et.abc

答案 2 :(得分:0)

如果这个

var ec = $(".selector").attr('build');

返回此

// this return {abc:'one', bcm:'two', etc...}

然后你已经有了一个对象。

答案 3 :(得分:0)

您需要使用JSON解析器解析字符串。您不能只将字符串传递给Object构造函数。

答案 4 :(得分:0)

不要使用attr(),而是尝试使用data()方法,它允许您存储对象,而不仅仅是字符串。

存储对象时,请使用以下语法:

var d = {abc:'one', bcm:'two'};
$(".selector").data('build', d);

然后,当您需要检索对象时,请使用:

var d = $(".selector").data('build');
//access properties
var x = d.abc;

否则,如果您使用attr(),则需要将结果解析为一个对象,您可以使用parseJSON