将javascript应用于所有按钮

时间:2016-03-02 15:37:21

标签: javascript jquery html

我有一个动态创建的表,其中包含关联的按钮。我想要一个适用于每个按钮的简单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>

2 个答案:

答案 0 :(得分:2)

对于html页面上的任何元素,

id属性必须是唯一的,所以你需要添加一些类来检测你的按钮。然后按该类处理按钮

$(".buttonClass").on('click', function(e){
    $(this).find('span').toggleClass("glyphicon-plus glyphicon-minus");
});

答案 1 :(得分:1)

我看到你正在使用jQuery 您可以使用

选择jQuery中的所有按钮
$( ":button" )

而不是使用一个ID $("#collapseBtn")

然后在你的函数中使用$(this)来引用它。

来源:http://api.jquery.com/button-selector/