为什么我不能打印这个复选框数组?

时间:2011-08-24 23:20:07

标签: jquery

我正在尝试将一个数组写入一个变量,以便我可以在div中打印它,但无论我做什么,我都无法做到正确。

<input type="checkbox" class="checkboxes" value="1" checked="checked" />
<input type="checkbox" class="checkboxes" value="2" />
<input type="checkbox" class="checkboxes" value="3" checked="checked" />
<input type="checkbox" class="checkboxes" value="4" checked="checked" />

应返回1,3,4

所以我有:

var variable1 = $('input:checkbox:checked.checkboxes').map(function () {
  return this.value;
  }).get();
  $("#somediv").html(variable1);

然而div是空的,有谁知道我哪里出错了?

2 个答案:

答案 0 :(得分:1)

您需要将数组转换为字符串。如果以逗号分隔的列表足以满足您的需求,请使用toString()

var variable1 = $('input:checkbox:checked.checkboxes').map(function(){
    return this.value;
}).get().toString();
$("#somediv").html(variable1);

修改

如果需要,您还可以加速选择器。

$('input:checkbox:checked.checkboxes')

相当于稍快一点:

$('input.checkboxes').filter(':checkbox:checked')

如果您不将课程checkboxes分配给复选框以外的任何内容,则更快:

$('input.checkboxes').filter(':checked')

答案 1 :(得分:1)

$(function(){
    var data = new Array();
    $('.checkboxes:checked').each(function () {
        data[data.length] = $(this).val();
    });
    $("#somediv").text( data.join(','));
});