我已经为表的元素使用了动态id。我想用javascript来处理它。我怎样才能做到这一点?
<table>
<%@task.each do |task|%>
<tr id="task-<%=task.id%>">
....
</tr>
</table>
现在在Javascript中,如何获取特定行的ID来处理onclick()
或onchange()
等事件?
答案 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”中的详细信息列表。