我有一个接收int作为参数的函数:
function addToCart(id){
var cart= cart.info;
for( i = 0; i < cart.length; i++){
// SOME CODE
}
}
addToCart函数正在接收的ID是商店上其他东西的数字。 例如,如果用户选择电影,它将收到3,如果用户选择计算机等,则收到2
所有这些都有效,但我想要的是计算用户拨打电影的次数,例如计算机。因此,当他们查看购物车时,它会站起来#34;您选择了X次电影&#34;。有没有简单的方法呢?
编辑#1
var test1= {
test: [
{
name: "Test1",
image: "..",
info: "Test1",
price: 159.50
}, {
name: "Test2",
image: "..",
info: "Test2",
price: 159.50
}, {
name: "Test3",
image: "..",
info: "Test3",
price: 159.50
}, {
name: "Test4",
image: "..",
info: "Test4",
price: 159.50
}
]
}
有关环:
for( i = 0; i < test1.length; i++){
if(id == [i]){
if($("#testDiv" + [i]).length == 0) {
$("#stuff").append('<div id="test1'+ [i] +'"></div>');
$("#test1" + [i]).append('//WRITE OUT INFO ABOUT JSON-object');
$("#test1" + [i]).append('//WRITE OUT INFO ABOUT JSON-object');
$("#test1" + [i]).append('//WRITE OUT INFO ABOUT JSON-object');
}
}
}
for循环位于addToCart内部,如果用户向购物车添加内容,则forloop内的Jquery内容会运行。但是,只有div ID不存在。如果它存在,那么我需要计算该项目被点击的次数。
使用这种方法我可以使用它:
if([i] == 0){
test1Sum++;
$("#total" + [i] ).html(test1Sum);
} else if([i] == 1) {
test2Sum++;
$("#total" + [i] ).html(test2Sum);
} else if ([i] == 2){
test3Sum++;
$("#total" + [i] ).html(test3Sum);
} else if ([i] == 3){
test4Sum++;
$("#total" + [i] ).html(test4Sum);
}
但有没有更好的方法呢?因为对于我添加到JSon列表的每个新对象,我必须编写一个新的else if语句
答案 0 :(得分:1)
var counters = { movies: 0, computers: 0 };
if(id === 3){
counters.movies +=1;
}
编辑以上内容以包含所有案例并在以后显示给您的用户。这将为您的每个ID保留单独的计数。
答案 1 :(得分:1)
不确定
var ids = ["","","computers","movies"];
cart.counter = {};
function addToCart(id) {
if (cart.counter[ids[id]]!=null) cart.counter[ids[id]]++;
else cart.counter[ids[id]]=0;
var msg ="";
for (var tp in cart.counter) {
msg+="\nYou called "+ tp + ":"+cart.counter[tp])
}
alert(msg);
}
答案 2 :(得分:0)
创建一个特定于您的范围的全局函数计数器或计数器,并使用调用方法。
var func_counter=0;
function addToCart() {
if (addToCart.caller == null) {
return ("The function was called from the top!");
} else
func_counter++;
return WHATEVER_YOU_WANT_TO;
}
答案 3 :(得分:0)
您需要在购物车中记录每种类型的商品。如果您有一个用于查看购物车内容的页面,则可以使用以下内容:
var itemCount = {};
function addToCart(id){
var productName = getName(id); // you will need to implement this
if(itemCount[productName] != null)
itemCount[productName]++;
else
itemCount[productName] = 0; // initialize
alert('You have ' + itemCount[productName] + ' ' + productName + '(s) in your cart');
}
function removeFromCart(id) {
var productName = getName(id); // you will need to implement this
if(itemCount[productName] != null)
if(itemCount[productName] > 0)
itemCount[productName]--;
else
itemCount[productName] = 0;
alert('You have ' + itemCount[productName] + ' ' + productName + '(s) in your cart');
}
您需要实施产品名称查找,但通过使用对象属性的括号表示法,您可以动态初始化和更新购物车中的产品计数。
答案 4 :(得分:0)
你可以制作一个数组:
var items = new Array();
function addToCart(id){
items.push(id)
}
并从购物车中删除商品,将其删除:
items.pop(id);
获取所选电影的总数,如下所示:
var total = item.length;
答案 5 :(得分:0)
这对我有用:
var TotalCheck= {}
// Checks if a item exist
if($("#totals" + [i]).length !== 0){
TotalCheck["something" + [i]]++;
$("#totals" + [i]).html(TotalCheck["something" + [i]]);
}
然后我在我的购物车中有这个,所以得到我在购物车中的物品数量
$("#totals" + [i]).html(TotalCheck["something" + [i]] = 1);