我现在正在使用一些javscript,它背后的基本思维过程是,你点击一个链接,并且链接产生并输入一个篮子,我当前记录了在我的控制台中发送到篮子的内容。当我点击链接时,它会触发additem()
功能,
function additem(desc,price,quantity)
{
var x = items.length - 1;
var found = (x == 0);
var y = new Item(desc,price,parseInt(quantity));
console.log(y);
var z = y;
while((x != 0) && (found == false))
{
z = items[x];
if(z != null)
{
if(z.M_desc == desc)
{
found = true;
}
else
{
x--;
}
}
else
{
x--;
}
}
if(found == false)
{
items[++numitems] = y;
}
else
{
items[x].M_quantity += quantity;
}
updatecart();
}
我在控制台中看到的是以下内容,
Item { M_desc="Item 2", M_price="10", M_quantity=1}
然而,当我点击它时,我得到以下内容,
M_desc
"Item 2"
M_price
"10"
M_quantity
undefined
M_quantity如何在另一个控制台视图中为1然后未定义?
=====编辑=====
我认为问题源于此,我的JS代码从行开始。
var items = new Array(2);
现在我假设这会创建一个新数组,就像我在console.log(items)
之后直接运行[undefined, undefined]
一样。
使用以下代码
点击链接时调用additemHTML
<a class='product' rel='"+category[i].product[j].price+"' href=''>"+ category[i].product[j].description + "</a>
JS
$('.product').live("click",function(e){
additem($(this).text(), $(this).attr('rel'), 1);
e.preventDefault();
});
这是因为items[x]
始终为null或未定义而出现问题。而且我不确定为什么。
答案 0 :(得分:0)
几乎同时调用您的updatecart函数。 items[i].M_quantity = $('input[name="qty"]').val()
是有问题的路线。输入为空,正在用undefined替换您的数量。