如何在jQuery更改函数中选择动态类?

时间:2016-09-19 12:24:23

标签: javascript jquery html checkbox jquery-selectors

我有一个输入字段,其动态类为:

<input class="chek" data-id="1" type="checkbox" data-toggle="toggle">
<input class="chek" data-id="2" type="checkbox" data-toggle="toggle">
<input class="chek" data-id="3" type="checkbox" data-toggle="toggle">

这是我的Js:

$(".chek").unbind().change(function(e) {
var getid = $(this).attr('data-id');
alert(getid);
e.preventDefault();

$.ajax({
        url: base_url + '/admin/program/setslider?selected='+getid,
        type: 'POST',
        dataType: 'json', 
        data: getid,
        headers: {
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
       })

问题是$(this).attr('data-id');返回所有引用同一类chek的data-id attr(我假设$(this)只返回data-id,如果只返回所有data-id)

解决方案我想要获得用于选择特定输入的动态类,如:

<input class="chek_1" data-id="1" type="checkbox" data-toggle="toggle">
<input class="chek_2" data-id="2" type="checkbox" data-toggle="toggle">
<input class="chek_3" data-id="3" type="checkbox" data-toggle="toggle"> 

JS就像:

$(".chek_'+ id +'").unbind().change(function(e) {
// code here
 }

注意:

我正在使用bootstrap切换using dask.delayed alongside dataframes来更改复选框。

1 个答案:

答案 0 :(得分:0)

我想你想要获得复选框的更改事件。

根据您的HTML,您可以使用以下代码来获取更改事件。

$("input[data-toggle='toggle']").change(function(){
      alert(this.checked);
});

OR

$("input:checkbox").change(function(){
      alert(this.checked);
});

参考Fiddle