【问题标题】:How to select dynamic class in jQuery change function?如何在 jQuery 更改功能中选择动态类?
【发布时间】:2017-01-27 03:21:24
【问题描述】:

我有一个动态类的输入字段:

<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'); 返回所有 data-id attr 引用同一个类 chek(我假设 $(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
 }

注意:

我正在使用引导切换 http://www.bootstraptoggle.com/ 来更改复选框。

【问题讨论】:

  • 您的问题不清楚。在选中/取消选中任何复选框时您要进行任何操作?
  • 您需要更具体地说明您的问题是什么以及您要做什么。见How to Ask
  • 感谢感谢,请参阅有问题的 chang。
  • 当你说“$(this).attr('data-id'); 返回所有引用同一个类 chek 的 data-id attr”时——这绝对不是真的。它只会得到你改变的那个。见:jsfiddle.net/3tk62zdw

标签: javascript jquery html checkbox jquery-selectors


【解决方案1】:

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

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

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

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

参考Fiddle

【讨论】:

  • 感谢例如回复,实际上我的问题并不清楚,请参阅我的问题的变化。我的问题是选择特定的类来调用特定输入的更改函数
  • 您的代码对我来说运行良好。我根据您的代码创建了一个小提琴,它没有返回所有数据 ID。小提琴 - jsfiddle.net/xs9e6moL/75
猜你喜欢
  • 2017-08-14
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
相关资源
最近更新 更多