2011-07-15 7 views
0

$.dataを使用してオブジェクトに値を割り当て、その後JSON.stringifyを使用するJavaScriptをいくつか持っています。 1.4.4で動作していましたが(実際のJSONデータを取得しましたが)、1.5.2+(空のデータ)で壊れています。JSON.stringify jQuery 1.4.4から1.5.2へ

私は間違っていますか?

$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

はで開始する間違ったフィドルを投稿); JSON.stringifyがあなたのためにそこに置くので、引用符を使用する必要はありません。このアプローチでご覧ください@Mrchiefをやってみてください以上のjsが

var o = { a: 'some data', b: 'more data' }; o.foo = bar; $('#div').text(JSON.stringify(o)); 

の下指向。あなたはそれが正常に動作する方法を定義します。今は別の方法がバージョン間で壊れたのはなぜか分かりません。 – Godless667

+0

最新のバージョンで 'data'を扱う方法が変更されました(HTML5の' data'属性と互換性があります)。たぶんそれが壊れた理由です。 JQuery APIのリリースノートを掘り下げて詳細を見つけることにしました。 – Mrchief

0

$ .dataセクションは、任意のHTMLタグに「プログラマブル属性」を記憶するために使用されます。これらの値はシリアライズ可能ではありません。他の場合は、属性をシリアル化するオブジェクト(あなたの場合)です。

関連する問題