javascript-var值随机显示NaN?

时间:2015-10-31 02:51:13

标签: javascript innerhtml

我遇到了一个奇怪的问题。我正在建立一个在线商店,并将我的产品显示为:

var products = {
'Box1':{
    'price' : 10,
    'quantity' : 10
},
'Box2':{
    'price': 15,
    'quantity' : 10
},
'Clothes1':{
    'price': 20,
    'quantity' : 10
},
'Clothes2':{
    'price': 30,
    'quantity' : 10
},
'Jeans':{
    'price': 50,
    'quantity' : 10
},
'Keyboard':{
    'price': 20,
    'quantity' : 10
},
'KeyboardCombo':{
    'price': 40,
    'quantity' : 10
},
'Box2':{
    'Mice': 20,
    'quantity' : 10
},
'PC1':{
    'price': 350,
    'quantity' : 10
},
'PC2':{
    'price': 400,
    'quantity' : 10
},
'PC3':{
    'price': 300,
    'quantity' : 10
},
'Tent':{
    'price': 100,
    'quantity' : 10
},
};

我也宣布了一个全局变量

 var priceTotal = 0;

当我点击产品上的“添加”按钮时,我有一个addtocart函数。这是按预期工作的。我的功能如下:

function addToCart(productName) {
  //var total = 5;
  cart[productName]++;
  products[productName].quantity --;
  priceTotal = priceTotal + products[productName].price;
  var element = document.getElementById("cartTotal");
  element.innerHTML = "CartTotal($"+priceTotal+")";

}

无论出于何种原因,除了我添加Box2时,一切都按照我的要求运行。每当我点击add为box2时,我的priceTotal显示NaN,无论priceTotal的先前值如何。我已经尝试将价格值更改为不同的数字,但它仍然存在。有谁知道为什么会发生这种情况?这里是否有明显的错误,或者我是否需要显示更多代码?

由于

1 个答案:

答案 0 :(得分:0)

如果你仔细观察,你会意外地两次添加 box 2 ,第二次使用" Mice"而不是"价格,"所以priceTotal值将会关闭。