0

JSON データをリスト構造に変換しています。「AAA.BBB[0].CCC.DDD[5].EEE」形式を ID として保存したいので、ユーザーがそのリスト項目の内容を変更すると、変更されますその場所に関連付けられた JSON データ。

例 AAA.BBB[0].CCC.DDD[5].EEE = 123

123はリスト項目ですが、IDを「AAA.BBB[0].CCC.DDD[5].EEE」として保存したい

IDに場所を保存するより良い方法はありますか?

*編集:

サンプルコード:

JSON データ: {"AAA":{"AAB":"Value1","AAC":"Value2","AAD":1,"AAE":"Value3","AAF":"{"ABC":" Value4"}}}

リスト項目「Value4」の ID は AAA.AAF.ABC になります。

function nodeIT(obj,output){    
for (var x in obj){
    if(!(obj[x] instanceof Object)){

        //var str =JSON.stringify(obj);   // Where im stuck!
        output +="<li id='"+str+x +"'>";
        output += (x + "=" + obj[x] + "<br />");
        output +="</li>";
    }
    else if((obj[x] instanceof Object)){

        var obj1 = obj[x];
        output+="<li>" +x + "<ul>";

        output=nodeIT(obj1,output);
    }

}
output += "</ul></li>";
return output;

}

4

1 に答える 1

0

ID 属性を使用して 1 つの文字列を強制的に使用する代わりに、.data()javascript オブジェクトを html 要素に関連付けることができる jQuery のメソッドを利用できます。

したがって、リスト要素を構築するときは、次のようにします。

var liElement = $('<li />')
    .text(x + "=" + obj[x])
    .data({
        container: obj,
        key: x
    });

そして、後で次のようにデータにアクセスします(ここでthisは を参照li):

var container = $(this).data('container');
var key = $(this).data('key');
var value = container[key];
// .. modify value
container[key] = value;

ここで完全な例を参照してください: http://jsfiddle.net/h38Ec/

于 2013-03-29T18:42:12.807 に答える