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 回答