我有一个动态创建的表,其中包含关联的按钮。我想要一个适用于每个按钮的简单JavaScript方法。现在,它只引用创建的第一个按钮。
<table>
<tbody>
<% @task.subtasks.each do |subtask| %>
<tr>
<td>
<button class="btn btn-default" id="collapseBtn"><span class="glyphicon glyphicon-plus" id="collapseSpan"></button>
</td>
<td> <%= subtask.name %></td>
</tr>
<%end%>
</tbody>
</table>
<script>
$("#collapseBtn").click(function(){
$("#collapseSpan).toggleClass("glyphicon-plus glyphicon-minus");
});
</script>
答案 0 :(得分:2)
id
属性必须是唯一的,所以你需要添加一些类来检测你的按钮。然后按该类处理按钮
$(".buttonClass").on('click', function(e){
$(this).find('span').toggleClass("glyphicon-plus glyphicon-minus");
});
答案 1 :(得分:1)
我看到你正在使用jQuery 您可以使用
选择jQuery中的所有按钮$( ":button" )
而不是使用一个ID $("#collapseBtn")
。
然后在你的函数中使用$(this)来引用它。