2017-03-28 139 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); 
    }); 
    }); 

如果複選框都具有相同的名稱,您也可以使用它。