2010-01-28 121 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