Javascript 在每次迭代中,使用jquery在把手内选择元素

Javascript 在每次迭代中,使用jquery在把手内选择元素,javascript,jquery,handlebars.js,Javascript,Jquery,Handlebars.js,我在建一家电子商店。我正在HTML中显示一个产品列表,使用手柄 对于每个元素,我都添加了一个按钮,允许用户在购物车中添加项目。它不起作用,因为每次单击按钮时,我都会添加所有列表,而不仅仅是单个对象 所以我知道我正在传递所有列表(因为我传递'list'作为参数),我想知道如何只传递每个按钮的当前项。我不知道怎么做 html: 在单击功能中,您可以添加完整的列表: shoppingCart.addItem(list); 您不需要转移要添加的整个项目。由于范围中已经有了整个列表,只需让函数知道所选索

我在建一家电子商店。我正在HTML中显示一个产品列表,使用手柄

对于每个元素,我都添加了一个按钮,允许用户在购物车中添加项目。它不起作用,因为每次单击按钮时,我都会添加所有列表,而不仅仅是单个对象

所以我知道我正在传递所有列表(因为我传递'list'作为参数),我想知道如何只传递每个按钮的当前项。我不知道怎么做

html:


在单击功能中,您可以添加完整的列表:

shoppingCart.addItem(list);
您不需要转移要添加的整个项目。由于范围中已经有了整个列表,只需让函数知道所选索引是什么。 可能的解决方案是通过将按钮添加到按钮ID中,然后在jQuery中解析它,并继续或考虑用JavaScript解决方案替换jQuery方式订阅点击事件,并插入帮助的项目索引,方式如下:

<button class="addItem" class="btn" onclick="addItem({{@index}})">Buy</button>

我想你可以用一个条目ID(或其他地方指出的索引)来分类:

购买
$('.addItem')。单击(函数(){
shoppingCart.addItem(列表[$(this.id]);
});

每次单击按钮,我都会准确地添加所有列表!=><代码>shoppingCart.addItem(列表)如何识别已单击的项目?可能的解决方案:按索引、项目ID或名称?列表项的结构是什么?
shoppingCart.addItem(list);
<button class="addItem" class="btn" onclick="addItem({{@index}})">Buy</button>
function addItem(index) {
  shoppingCart.addItem(list[index]);
}
<button id="{{ @index }}" class="addItem" class="btn">Buy</button>

$('.addItem').click(function() {
  shoppingCart.addItem(list[$(this).id]);
});