首页 > 解决方案 > 未捕获的类型错误:无法读取未定义的属性“值”(带有 javascript 项目的购物车)

问题描述

所以我正在使用Javascript在购物车上工作,我收到了这个错误:

store.js:21 Uncaught TypeError: Cannot read property 'value' of undefined at updateCartTotal

这是代码:

var removeCartItemButtons = document.getElementsByClassName('btn-danger')
console.log(removeCartItemButtons)
for (var i =0; i < removeCartItemButtons.length; i++) {
    var button = removeCartItemButtons[i]
    button.addEventListener('click', function(event) {
        var buttonClicked = event.target
        buttonClicked.parentElement.parentElement.remove()
        updateCartTotal()
    })
}

function updateCartTotal() {
    var cartItemContainer = document.getElementsByClassName('cart-items')[0]
    var cartRows = cartItemContainer.getElementsByClassName('cart-row')
    var total = 0
    for (var i = 0; i < cartRows.length; i++) {
        var cartRow = cartRows[i]
        var priceElement = cartRow.getElementsByClassName('cart-price')[0];
        var quantityElement = cartRow.getElementsByClassName('cart-quantity.input')[0]
        var price = parseFloat(priceElement.innerText.replace('$', ''))
        var quantity = quantityElement.value()
        total = total + (price * quantity)
    }    
    document.getElementsByClassName('cart-total-price')[0].innerText = '$' + total
}

有人可以帮我弄这个吗?谢谢!

标签: javascripte-commerce

解决方案


使用提供的数据执行以下操作

//fix the selector
cartRow.getElementsByClassName('cart-quantity.input')[0]
//to this
cartRow.querySelectorAll('input.cart-quantity')[0];

//change this
var quantity = quantityElement.value()
//to this
var quantity = quantityElement.value

推荐阅读