0

如何将正在循环的元素传递给事件处理程序。

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>

上面的 code:product参数给了我HTMLButton而不是product当前的迭代。


问题:如何将元素product而不是button元素传递给处理程序?
我正在使用express-handlerbars.

4

1 回答 1

0

你可以试试 :

this.parentNode

它指的是html父级。

并在您的功能中:

控制台.log(product.id);

console.log(typeof(product)); //显示对象

控制台打印 html,但产品是您从 onclick 发送的对象。因此,您可以访问任何相关属性。

希望它可以提供帮助。

于 2017-04-18T15:29:39.733 回答