0

jsonオブジェクト「shopping_cart」があり、その中に「items」という別のオブジェクトがあります。

ユーザーがカートに新しいアイテムを追加したら、jsonオブジェクトを更新したいので、「items」オブジェクトに新しいアイテムを追加します。ここで、「items」オブジェクトに追加される新しいアイテムには、なんらかの識別子が必要であるため、ユーザーが新しいアイテムを追加するたびに、次のようになります。

$.extend(shopping_cart.items,{ "item_2":...
$.extend(shopping_cart.items,{ "item_3":...

以下の(1)の数字を変数に置き換えてみます

$.extend(shopping_cart.items,{ "item_1": {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});

次のようなもの:var new_num = 5;

$.extend(shopping_cart.items,{ "item_"+new_num: {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});

つまり、次のように変換されます。

 $.extend(shopping_cart.items,{ item_5

しかし、運が悪いのですが、どのように試しても、変数はすべての場合に文字列として解析されます。

では、変数を使用してオブジェクトを動的に作成する方法はありますか?item_name、qty、priceなどを動的変数で更新するためにもこれが必要になります。

大いに感謝する。

4

1 に答える 1

2

追加するアイテムは1つだけなので、jQueryを使用する必要はありませんextend。属性を設定するだけです:

shopping_cart.items["item_"+new_num] = {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""};

[...]では、文字列操作を行うことができます。内で{...:...}は、あなたはそうではありません。

于 2013-03-19T19:09:23.617 に答える