我已将对象从storeItems数组推入cartItems数组并成功在div中打印,但是添加更多功能后,不再将其添加到数组中(通过控制台检查,长度值为0 )。我没看到什么?
我只需要将用户选择的对象从storeItems数组转移到购物车Items即可成功打印
//Function to add an item to users cart & update total
function addItem() {
var addId = document.getElementById("addItemId").value;
var itemQty = document.getElementById("addItemQty").value;
for (x = 0; x < storeItems.length; x++) {
//Calling validation functions
validateId();
validateQty();
if (addId === storeItems[x].id) {
cartItems.push(new CartItem(storeItems[x].id, storeItems[x].name, storeItems[x].price, storeItems[x].qty, storeItems[x].shippingCost));
displayCart();
}
}
console.log(cartItems);
}
我只需要将用户选择的对象从storeItems数组转移到购物车Items即可成功打印
答案 0 :(得分:0)
好的,我走了, 我对您的代码做了一些更改,以使其对我有用。
看看我的代码
var storeItems = [1,2,3,4,5,6]
function addItem(addId, itemQty) {
function addItem(addId, itemQty) {
for (x = 0; x < storeItems.length; x++) {
//Calling validation functions
if (addId === storeItems[x]) {
cartItems.push(x);
}
}
console.log(cartItems);
}
addItem(6);
根据我的推论,亲爱的沃森,如果条件不起作用,请在您的代码中关注
if (addId === storeItems[x].id) {
....
}
调试这种情况。这可能对您有帮助!
答案 1 :(得分:0)
在与值和文本输入进行比较时,请确保使用正确的比较运算符。无论将type=""
的值设置为什么,文本输入都会以字符串形式返回。
因此,将输入与实际数据进行比较时,请执行以下操作之一:
==
而不是===
来忽略/跳过类型比较===
parseInt(myInput) === myNonInput
new Date(myInput).getTime() === myNonInput.getTime()
myInput === myNonInput.toString()