2010-01-28 117 views
2

我目前有一個複選框列表,所有這些複選框都隱藏着相同的ID,我想獲取被選中的列表,這可能嗎?我目前使用的格式如下:JQUERY獲取通過ID檢查的複選框列表

selected_list = $("#ID").attr("checked", "true"); 

然而,這只是返回頂部一個,當我用這樣的循環中讀取它們放入一個變量:

list = ''; 
$(selected_list).each(
    function() { 
      list += $(this).val() + " "; 
    } 
); 

alert(list); 

任何人都知道這樣做的更好的辦法這或爲什麼我的版本只返回第一個複選框?由於

+1

如果他們有相同的ID,你會如何識別他們?他們都可以有相同的班級,但應該有不同的ID。 – atfergs 2010-01-28 14:25:14

+0

+1歡迎來到StackOverflow,@jquery_check! – Sampson 2010-01-28 14:49:25

回答

5

你不應該再使用ID值,他們都應該是獨一無二的:

$("#elementID:checked"); 

理想情況下,你應該給他們所有的同一個班級,或名稱,這取決於你想如何使用他們。但是你不應該在一個頁面上反覆使用同一個ID。

<input type="checkbox" name="Apples" class="fruit" /> 
<input type="checkbox" name="Oranges" class="fruit" /> 

我們可以選擇這些不同的方式。首先,通過類:

$(".fruit:checked"); 

或僅僅是一個模糊的複選框電話:

$(":checkbox:checked"); 

或者,在單選按鈕的情況下,如果他們都有着相同的name值:

$("[name='elements']:checked"); 
+1

那麼什麼是更好的方法?我是否應該讓他們都有相同的班級名稱,然後按班級檢查? – 2010-01-28 14:26:51

+0

@jquery_check我已經用更簡單更詳細的解釋更新了我的答案。 – Sampson 2010-01-28 14:31:43

+0

謝謝,感謝我現在使用類名稱的幫助。再次感謝 – 2010-01-28 14:35:36