如何将此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 :"..."
};
如果不可理解请问:) 在此先感谢帮助我弄明白!
答案 0 :(得分: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 );
});
答案 1 :(得分:1)
如果您想将其添加到TDConf.Config.products
,那么您可以这样做:
TDConf.Config.products.push(theDynamicJsonObj);
如果您想添加/覆盖现有TDConf.Config.products
元素的属性,那么您可以这样做:
TDConf.Config.products[theNumericIndex] = $.extend(TDConf.Config.products[theNumericIndex], theDynamicJsonObj);
答案 2 :(得分: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对象(略有差异,但仍然有区别)。