代码之家  ›  专栏  ›  技术社区  ›  Eric O.

获取currentTarget子级的innerHTML

  •  2
  • Eric O.  · 技术社区  · 8 年前

    我有我的html的这一部分(不止一个相同类型):

    <div class="this-product">
     <img src="images/bag2.jpeg" alt="">
     <span class="product-name">iPhone</span>
     <span class="product-price">345445</span>
    </div>
    

    var productList = document.querySelectorAll('.this-product');
    productList.forEach(function (element) {
    
        element.addEventListener('click', function (event) {
            var productName = document.getElementsByClassName('product-name')[0].innerHTML;
            var productPrice = document.getElementsByClassName('product-price')[0].innerHTML;
            var cartProductname = event.currentTarget.productName;
            var cartProductprice = event.currentTarget.productPrice;
            var cartContent = '<div class="cart-product"><span class="block">'+cartProductname+'</span><span class="block">'+cartProductprice+'</span></div><div class="cart-result">Total = </div><br>'
            document.getElementById('dashboard-cart').innerHTML += cartContent;
        });
    });
    

    一切都很好地工作,上面的每个变量都有它的值,除了 cartProductname 和 cartProductprice公司 显示为 未定义

    2 回复  |  直到 8 年前
        1
  •  1
  •   Dacre Denny    8 年前

    如果我没弄错你的问题,你可以打电话给我 querySelector 在迭代的每个产品项元素上,如下所示:

    var productList = document.querySelectorAll('.this-product');
    productList.forEach(function (element) {
    
        element.addEventListener('click', function (event) {
    
            // Update these two lines like so:
            var productName = element.querySelector('.product-name').innerHTML;
            var productPrice = element.querySelector('.product-price').innerHTML;
    
            var cartProductname = productName; // event.currentTarget.productName;
            var cartProductprice = productPrice; // event.currentTarget.productPrice;
            var cartContent = '<div class="cart-product"><span class="block">'+cartProductname+'</span><span class="block">'+cartProductprice+'</span></div><div class="cart-result">Total = </div><br>'
            document.getElementById('dashboard-cart').innerHTML += cartContent;
        });
    });
    
        2
  •  1
  •   Eugene Tsakh    8 年前

    event.currentTarget.querySelector('.product-name') 将元素放入另一个元素中