【发布时间】:2019-08-14 17:43:09
【问题描述】:
如何用纯 javascript 编写这个 jquery 字符串?我用注释标记了字符串。
function loadGoods() {
$.getJSON('goods.json', function (data) {
var out = '';
for (var key in data){
out+='<div class="single-goods">';
out+='<h3>'+data[key]['name']+'</h3>';
out+='<img src="'+data[key].image+'">';
out+='<p>Price: '+data[key]['cost']+'</p>';
out+='<button class="add-to-cart" data-art=" '+key+' "> buy</button>';
out+='</div>';
}
document.getElementById('goods').innerHTML = out;
$('button.add-to-cart').on('click', addToCart); // this string
});
}
如果写这个字符串:
document.querySelector ('button.add-to-cart'). addEventListener ('click', addToCart);
该按钮仅通过单击第一个产品卡来捕获事件,但其他产品卡按钮不会捕获按钮单击事件并且不会将商品添加到购物车。
addToCart - 为了更好地理解我将在下面编写的函数
函数addToCart:
function addToCart() {
var articul = this.getAttribute('data-art');
if (cart[articul]!=undefined) {
cart[articul]++;
}
else {
cart[articul] = 1;
}
localStorage.setItem('cart', JSON.stringify(cart) );
showMiniCart();
}
【问题讨论】:
-
querySelector只返回一个元素。使用querySelectorAll。
标签: javascript jquery