1

この JSON オブジェクトを以下の関数またはオブジェクトに配置するにはどうすればよいですか?

// this function generates an JSON Object dynamically       
$(".n_ListTitle").each(function(i, v) {
    var node = $(this);
    var nodeParent = node.parent();
    var nodeText = node.text();
    var nodePrice = node.siblings('.n_ListPrice');

    var prodPrice = $(nodePrice).text();
    var prodId = nodeParent.attr('id').replace('ric', '');
    var prodTitle = nodeText;

    var json = {
        id : prodId,
        price : prodPrice,
        currency : "CHF",
        mame : prodTitle
    };
    return json;
});

TDConf.Config = {
    products : [
        // here should be inserted the JSON Object
        {id: "[product-id1]", price:"[price1]", currency:"[currency1]", name:"[product-name1]"},
        {id: "[product-id2]", price:"[price2]", currency:"[currency2]", name:"[product-name2]"},
        ...

    })],
    containerTagId :"..."
};

理解できない場合は、質問してください:) 理解するのを手伝ってくれてありがとう!

4

3 に答える 3

1

あなたはこれを行うことができます:

     TDConf.Config = {
        products : []
     };

     $(".n_ListTitle").each(function(i, v) {
        var node = $(this);
        var nodeParent = node.parent();
        var nodeText = node.text();
        var nodePrice = node.siblings('.n_ListPrice');

        var prodPrice = $(nodePrice).text();
        var prodId = nodeParent.attr('id').replace('ric', '');
        var prodTitle = nodeText;

        var json = {
            id : prodId,
            price : prodPrice,
            currency : "CHF",
            name : prodTitle
        };
        TDConf.Config.products.push( json );
    });
于 2012-09-25T15:35:13.097 に答える
1

あなたがそれを追加したいならTDConf.Config.products、あなたはそうするでしょう:

TDConf.Config.products.push(theDynamicJsonObj);

TDConf.Config.products既存の要素のプロパティを追加/上書きする場合は、次のようにします。

TDConf.Config.products[theNumericIndex] = $.extend(TDConf.Config.products[theNumericIndex], theDynamicJsonObj);
于 2012-09-25T15:36:13.973 に答える
1

あなたの関数はあなたが思っていることをしません(中のreturnステートメント.eachはループを壊すことができるだけです)。これを試して:

TDConf.Config = {
    products : [],
    // some other stuff
}
$(".n_ListTitle").each(function(i, v) {
    // some other code
    var json = {
        id : prodId,
        price : prodPrice,
        currency : "CHF",
        name : prodTitle
    };
    TDConf.Config.products.push( json );
});

JavaScript、スコープ、そして明らかにJSONについてもっと学ぶ必要があります。なぜなら、あなたが扱っているのは実際にはJSONではなく、JavaScriptオブジェクトであるということを理解していないようだからです(わずかな違いですが、それでも違いはあります)。

于 2012-09-25T15:36:23.257 に答える