2011-08-12 7 views
1

文字列をオブジェクトに変換しようとしています。私が使用します。文字列をdiv属性からオブジェクトに変換する方法

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

私はこれを変換することができますどのよう

​​

この方法を試してみてください?この

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

戻り、この

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

が、あなたはすでにオブジェクトを持っている場合は

+1

おそらく前の質問のいくつかに答えてマークして戻すことを傷つけることはないでしょう。そうすれば、人々はあなたを助けてくれるでしょう。 –

答えて

0

+0

はい、しかし私はec.abcにアクセスして1つをretheenすることはできません – wyknzo

+0

@slandauからの回答をご覧ください。 –

5

その属性だけでJSONオブジェクトの形式であることを起こるstringが含まれている場合、あなたはJSONを扱うような方法でそれの要素にアクセスすることができることstring最初を解析する必要があります。

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

もちろん、それは常にそれがそのフォームになることを確認するために、そのstringの周りにバリデーションを追加したいかもしれません。そうでなければ、そのような前提を作ることによって問題に遭遇する可能性があります。

また、HTML属性にJson文字列を格納する理由はありますか?

0

JSONパーサーを使用して文字列を解析する必要があります。文字列をObjectコンストラクタに渡すことはできません。

1

使用$.parse()方法

var et= $.parse($(".selector").attr('build')); 
var t = et.abc 
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を使用できます。

関連する問題