javascript变量返回为undefined

时间:2011-12-09 16:58:04

标签: javascript console worldpay

我现在正在使用一些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]一样。

使用以下代码

点击链接时调用additem

HTML

<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或未定义而出现问题。而且我不确定为什么。

1 个答案:

答案 0 :(得分:0)

几乎同时调用您的updatecart函数。 items[i].M_quantity = $('input[name="qty"]').val()是有问题的路线。输入为空,正在用undefined替换您的数量。