2017-03-28 141 views
0

我试图获得复选框的id。 在页面上有几个复选框有id s:channel_left_restream_ids_42channel_left_restream_ids_44等我需要处理一个事件时,其中一个检查,并得到一个id的检查。JQuery获取复选框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

回答

0

意外的是,问题不在于jQuery或像这样的smth。 这只是我咖啡中大胆阵列的一个问题。 替换$("input[id*=channel_left_restream_ids]").change (e) =>$("input[id*=channel_left_restream_ids]").change (e) ->(区别仅在于行末尾的数组)才能实现。

-1

我希望我正确理解你的问题,但我希望这可能会推动你在正确的方向:

要知道,如果这个特定的复选框被选中与否,你必须使用它的确切ID。

所以,在你的脚本,你正在寻找这个ID: ID * = channel_left_restream_ids

但复选框的ID是“channel_left_restream_ids_42”

我不知道你正在使用的代码,但有可能有很多“channel_left_restream_ids”,或者这个id可能用在其他不是checkbox的东西上。

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

+0

是的,在'restream_ids'之后有很多不同数字的复选框。事情是我需要这个事件触发改变他们中的任何一个。然而,在我的问题中有一个JSFiddle链接,如果我将“_42”添加到选择器没有更改,您可以看到它。它仍然会产生'未定义' – Ngoral

0

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

这应该让你朝正确的方向发展。

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

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