【问题标题】:trying to update object value with each click but not working - javascript尝试在每次点击时更新对象值但不工作 - javascript
【发布时间】:2020-11-03 18:27:27
【问题描述】:

每次单击按钮时,我都会尝试更新对象内 num 的值。但是我无法让它工作。每次单击时,我都会将对象打印到控制台,以便查看值是否更新,但没有更新。这是我的代码...任何帮助将不胜感激。谢谢!

const addToCart = document.getElementById('addToCart')
            addToCart.addEventListener('click', function(option) {
                option.preventDefault();   
                
                let num = 0
              
                let cartObject = {
                    name: jsonResponse.name,
                    price: jsonResponse.price,
                    option: select.value,
                    optionQuantity: num
                }
                num++
                
                console.log(cartObject)    
            });

【问题讨论】:

  • 只需将let num = 0 行移到函数之外.. 在addToCart.addEventListener 之前
  • 每次单击该按钮时都会运行整个函数。这包括您声明num 的行。它被声明,初始化为0,然后在对象创建中使用。然后将其增加一(但是,cartObject.optionQuantity 仍将为零)。在 console.log 行之后,numcartObject 都不再存在。在下一次点击时,这一切都会再次发生,就像第一次一样,不会对该函数之外的任何东西产生任何后果。

标签: javascript function object addeventlistener


【解决方案1】:

您必须将 let num = 0 移到功能块之外。因为当您每次调用此函数时,它都会执行let num = 0。这就是为什么num 永远不会改变的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-23
    • 2023-04-03
    • 2012-11-03
    • 1970-01-01
    • 2020-12-26
    • 2012-07-19
    • 1970-01-01
    • 2014-03-09
    相关资源
    最近更新 更多