如何在javascript中处理具有动态ID的事件?

时间:2016-03-07 08:07:54

标签: javascript jquery ruby-on-rails

我已经为表的元素使用了动态id。我想用javascript来处理它。我怎样才能做到这一点?

<table>
    <%@task.each do |task|%>
        <tr id="task-<%=task.id%>">
            ....
        </tr>
</table>

现在在Javascript中,如何获取特定行的ID来处理onclick()onchange()等事件?

2 个答案:

答案 0 :(得分:4)

创建增量id(或任何其他属性)永远不是一个好的模式;它过于僵化,最终变得难以维持。

相反,您可以通过在所有class元素上放置一个公共tr并在事件处理程序中使用this来引用引发该事件的元素来实现此目的。这是一个例子:

<table>
    <%@task.each do |task|%>
        <tr class="task" data-id="<%=task.id%>">
            <!- .... -->
        </tr>
</table>
$('.task').click(function() {
    console.log($(this).data('id'));
});

答案 1 :(得分:0)

你也可以使用下面的代码

$(document).on('click', function (event)  or  $('tr').on('click', function (event) 
{
var id = event.target.id.toString();
alert("#"+id);
}

参数“event”保存必要的数据。检查控制台,查看参数“event”中的详细信息列表。