如何将正在循环的元素传递给事件处理程序。
foo.hbs
<div>
{{#each products}}
// some html code
<p>{{this}}</p> <!-- output product object -->
<button onclick="foo(this)">Add</button> <!-- output button object-->
<button onclick="foo({{this._id}})">Add</button> <!-- uncaught syntax error -->
{{/each}}
</div>
<script type="text/javascript">
function foo(product) {
console.log(product);
}
</script>
上面的代码:product
参数给出了当前迭代的HTMLButton
而不是product
。
问题:如何将product
而不是button
元素传递给处理程序?
我正在使用express-handlerbars
。
答案 0 :(得分:0)
您可以尝试:
this.parentNode
指的是html parent。
并在您的函数中:
的console.log(product.id);
的console.log(typeof运算(产品)); //显示对象
控制台打印html,但产品是您从onclick发送的对象。因此,您可以访问任何相关的属性。
希望它可以提供帮助。