2011-07-15 56 views
0

有一些JavaScript爲使用$.data的對象分配值,然後使用JSON.stringify。它在1.4.4中工作(獲得實際的JSON數據),但在1.5.2+(空數據)中被破壞。從jQuery 1.4.4到JSON 1.4.4的JSON.stringify問題

我在做什麼錯?

$document.ready { 
    var o; 
    o = {}; 
    $(o).data("to","[email protected]"); 
    $(o).data("from","[email protected]"); 
    $(o).data("html","true"); 
    $('#log').append(JSON.stringify(o)); 
}; 

<div id="log" class="line1"></div> 

可以在這裏重現:http://jsfiddle.net/Km4M4/6/

回答

1

您的jsfiddle沒有JSON庫包括在內。另外,你正以錯誤的方式調用jQuery。

但是,任何理由,爲什麼你不能定義它是這樣的:

o = { 
     "to":"[email protected]", 
     "from":"[email protected]", 
     "html":"true" 
    }; 

更新工作小提琴:http://jsfiddle.net/Km4M4/8/

+0

貼錯小提琴開始。定義它的方式你工作得很好。現在我只是好奇爲什麼其他方式在版本之間破裂。 – Godless667

+0

改變了數據在最新版本中的處理方式(與HTML5數據屬性兼容)。也許這就是它打破的原因。我會挖掘jQuery API發行說明來查找確切的細節。 – Mrchief

0

$。數據是用來存儲所有的HTML標籤「可編程屬性」。這些值不是可序列化的。其他情況是你想要序列化屬性的對象(你的情況)。嘗試做@Mrchief或面向以下

var o = { 
    a: 'some data', 
    b: 'more data' 
}; 
o.foo = bar; 

$('#div').text(JSON.stringify(o)); 

更JS見這種做法沒有必要使用引號,因爲JSON.stringify提出有你;)

相關問題