2012-09-25 74 views
1

如何將這個JSON對象放在下面的函數或對象中?如何將動態生成的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 :"..." 
}; 

如果不理解請諮詢:) 提前感謝幫助我弄清楚!如果你想將它添加到那麼你會做

 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); 
    }); 
+0

請解釋一下這個問題。你想插入作爲項目作爲產品數組中的n_listTitle元素? –

回答

1

您的功能沒有做什麼你認爲它確實(.each中的return聲明只能打破循環)。試試這個:

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,因爲你似乎不明白,你面對的是什麼actualy不是JSON,這是一個JavaScript對象(略有差異,但仍差異)。

+0

它可以這麼簡單:)非常感謝你的幫助! – Artpixler

1

你可以這樣做那麼你幾乎做:

TDConf.Config.products[theNumericIndex] = $.extend(TDConf.Config.products[theNumericIndex], theDynamicJsonObj); 
+0

也謝謝你:) – Artpixler

1

TDConf.Config.products.push(theDynamicJsonObj); 

如果你想添加/ overrite現有元素的屬性