2011-08-12 111 views
1

我嘗試將字符串轉換爲對象。我使用:如何將字符串從div屬性轉換爲對象

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

我嘗試這樣

​​

如何轉換呢??

+1

大概不會傷害回去並回答你之前回答的一些問題,它會讓人更容易幫助你。 –

回答

0

如果

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

返回此

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

那麼你已經有了一個對象。

+0

是的,但我無法訪問ec.abc以重新加入 – wyknzo

+0

請參閱@slandau的答案。 –

5

如果屬性包含一個string這恰好是在一個JSON對象的格式,你必須解析string第一個能夠訪問它的元素,你會使用JSON的工作方式:

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

當然,您可能需要在string附近添加驗證,以確保它總是以這種形式出現,否則可能會通過進行這些假設來解決問題。

此外,是否有一個原因,你存儲JSON字符串的HTML屬性?

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