В данный момент я работаю с некоторым 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]
всегда либо равно нулю, либо не определено.и я не уверен почему.