如何在迭代元素数组

时间:2017-08-13 17:45:56

标签: javascript html addeventlistener

我的网站上有产品列表(html文章元素)

var addToBasket = document.getElementsByClassName('add_to_basket')
var productSummary = document.getElementsByClassName('product_summary')
      for (var i=0; i < productSummary.length; i++){
        var productTitle = productSummary[i].children[1].innerHTML
        var productPrice = productSummary[i].children[2].innerHTML
        var productObject = {
          title: productTitle,
          price: productPrice,
          quantity: 1
        }
        productSummary[i].children[3].addEventListener('click', function(e){
          e.preventDefault();
          console.log(this, 'this');
          console.log(productObject, 'po4');
        })
      }

这个代码所做的基本上是找到该类的所有元素,然后迭代它们并附加一个事件监听器。 每篇文章都有一个按钮,其中包含一个孩子。当我点击该按钮时,我希望它会在我的productObject中返回产品详细信息。 当我console.log(this)我得到该特定元素中的按钮时。即,当我点击产品A时,它会记录我的A元素,当我点击产品B时,它会记录我的B元素。但是,当我console.log(productObject)时,它总是记录我的最后一个元素(产品B)。我如何附加它,以便为每个文章正确地存储对象中的细节?

0 个答案:

没有答案
相关问题