JQuery获取复选框ID

时间:2017-03-28 23:50:44

标签: jquery checkbox coffeescript

我试图获得一个id的复选框。 页面上有几个id的复选框:channel_left_restream_ids_42channel_left_restream_ids_44等。我需要处理一个事件,当其中一个选中并获得id时被检查的。

因此对于代码为<input type="checkbox" value="42" checked="checked" name="channel[left_restream_ids][]" id="channel_left_restream_ids_42">和coffescript的复选框,如下所示:

$("input[id*=channel_left_restream_ids]").change (e) =>
  alert($(this).attr("id"))

我无法让它发挥作用。它说undefined。我尝试了很多替代方案,但都没有效果。我在哪里做错了?

JSFiddle is here

3 个答案:

答案 0 :(得分:0)

在你的jfiddle中,我给每个复选框一个getId的类名,并使用了这段代码。

这应该让你朝着正确的方向前进。

jQuery(".getId").each(function(){
  jQuery(this).on("change", function(){
       var ids = jQuery(this).attr("id");
       console.log(ids);
  });
  });

如果复选框都具有相同的名称,您也可以使用它。

答案 1 :(得分:0)

出乎意料的是,问题不在于jQuery或像这样的问题。 这只是我咖啡中一个大胆阵列的问题。 用$("input[id*=channel_left_restream_ids]").change (e) =>替换$("input[id*=channel_left_restream_ids]").change (e) ->(差异只是在行尾的数组)就可以了。

答案 2 :(得分:-1)

我希望我理解你的问题,但我希望这可能会让你朝着正确的方向前进:

要知道是否选中了此特定复选框,您必须使用其确切的ID。

因此,在您的脚本中,您正在寻找此ID:       ID * = channel_left_restream_ids

但复选框的ID为“channel_left_restream_ids_42”

我不知道您正在使用的代码,但有可能存在许多“channel_left_restream_ids”,或者该ID可用于其他不是复选框的内容。

所以这值得一试:     [ID * = channel_left_restream_ids_42]