首页 > 解决方案 > 如何根据类名正确获取元素ID?

问题描述

我正在尝试获取id动态生成的内容。我正在使用类名来访问它。如果我单击该td项目一次,则没有警报。但是当我单击两次时,我会收到警报(第一次)。如果我点击第二个项目,我会收到两次警报。如果在第三个,我得到它三次,依此类推。错误是什么?

我的 JavaScript 代码:

function myFunction() {
    $('.task0').click(function() {
   var x = $(this).data('id');
    alert(x);
});
}

我的 HTML-Flask 代码:

   <tbody>
   {% set ns = namespace(num=1) %}
   {% for task in tasklist %}
   <tr>
      <td>{{ ns.num }}</td>
      <td class="task0" data-id="{{ task[0] }}"><a href="javascript:myFunction();" >{{ task[0] }}</a></td>
      {% for i in range(1,task|count) %}
      <td>{{ task[i] }}</td>
      {% endfor %}
   </tr>
   {% set ns.num = ns.num+1 %}
   {% endfor %}
</tbody>

标签: javascriptjinja2

解决方案


您正在调用该函数两次。您在 jquery 中使用的.click已经调用了该函数,然后您的a标记也调用了 JavaScript 函数。从 a 标签中删除对函数的调用


推荐阅读