その背後にある基本的な思考プロセスは、リンクをクリックすると、リンクが生成されてバスケットにエントリされ、現在、バスケットに送信されたものをコンソールに記録しています。リンクをクリックすると、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 または未定義のいずれかであるために問題が発生する場合です。理由はわかりません。