jquery复选框,如何获取所有选中的复选框并将它们添加到数组?

时间:2012-03-13 16:58:01

标签: javascript jquery

您好我有以下页面:

<input type="checkbox"  name="fruit1" id="1"  class="box">Banana<br /><br />
<input type="checkbox"  name="fruit2" id="2"  class="box">Cherry<br /><br />
<input type="checkbox"  name="fruit3" id="3"  class="box">Strawberry<br /><br />
<input type="checkbox"  name="fruit4" id="4"  class="box">Orange<br /><br />
<input type="checkbox"  name="fruit5" id="5"  class="box">Peach<br /><br />
<input type="button" id="groupdelete" value="clickme"><br />

 

 $(document).ready(function(){

$('#groupdelete').on('click', function(){
  var names = [];
   $('input:checked').each(function() {

       names.push($('input:checked').attr("name") + $('input:checked').attr('id'));

 });
   console.log(names); 
})

})

我要做的是以下内容:

在数组中添加选中的复选框。之后,我希望能够传递php变量中的值。

当我现在执行代码时,我得到的结果如下:

[“fruit22”,“fruit22”,“fruit22”]

任何帮助都将深受赞赏。

关心,Zoreli

2 个答案:

答案 0 :(得分:12)

您需要在this函数中使用'input:checked'而不是.each()来引用正在检查的集合中的当前元素。如果您重新使用选择器,那么您将再次获得该设置,然后只从集合中的第一个元素获取属性。

$('input:checked').each(function() {
    names.push($(this).attr("name") + this.id);
});

答案 1 :(得分:1)

将您的HTML更改为

<input type="checkbox"  name="fruits[]" id="1"  class="box">Banana<br /><br />
<input type="checkbox"  name="fruits[]" id="2"  class="box">Cherry<br /><br />
<input type="checkbox"  name="fruits[]" id="3"  class="box">Strawberry<br /><br />
<input type="checkbox"  name="fruits[]" id="4"  class="box">Orange<br /><br />
<input type="checkbox"  name="fruits[]" id="5"  class="box">Peach<br /><br />
<input type="button" id="groupdelete" value="clickme"><br />

现在,请查看jQuery / Javascript

$(document).ready(function(){
    $('#groupdelete').click(function() {
        var marked = new Array();
        var k = 0;
        $('input:checked').each(function(index,value) {
            marked[k] = value;
            k++;
        });        
        alert(marked[0].id);
    });
});

alert只是通过访问数组索引的直接访问权来为您提供演示。