使用jQuery查找所选复选框

时间:2012-12-18 13:53:17

标签: jquery

我有这个结构:

<div id="fields" class="grid">
    <div>...<div>
    <div id="some_id_1" class="itemSortable">
        <input ...>
        <input ...>
        <div>
            <input id="selected" name="selected" type="checkbox" value="true">
            <input name="selected" type="hidden" value="false">
            ...
        </div>
    <div id="some_id_2" class="itemSortable">
        <input ...>
        <input ...>
        <div>
            <input id="selected" name="selected" type="checkbox" value="true">
            <input name="selected" type="hidden" value="false">
            ...
        </div>
     ...
    <div id="some_id_n" class="itemSortable">
        <input ...>
        <input ...>
        <div>
            <input id="selected" name="selected" type="checkbox" value="true">
            <input name="selected" type="hidden" value="false">
            ...
        </div>
</div>

我没有使用jQuery的经验,所以我被卡住了。有人可以帮助jQuery脚本获取所选复选框的所有ID数组(例如some_id_x)吗?

5 个答案:

答案 0 :(得分:2)

要获取所选复选框中最近的父id的{​​{1}}数组,请尝试以下操作:

.itemSortable

您似乎有很多重复的var idArray = $('#fields').find(':checked').map(function() { return $(this).closest('.itemSortable').prop('id'); }).get(); 属性,但这意味着您的HTML无效并会导致代码出现问题。

答案 1 :(得分:1)

首先,您自己获得复选框:

$(':input:checked');

然后你找到他们各自的父母:

$(':input:checked').parents('.itemSortable');

要获取每个ID,请使用.each()迭代结果列表:

var ids = [];
$(':input:checked').parents('.itemSortable').each(function() {
    ids.push(this.id);
});

答案 2 :(得分:0)

css id仅适用于页面上的1个元素,使用类。

$('.someClass:checked').serialize()

答案 3 :(得分:0)

使用:选中选择器

有关http://api.jquery.com/selected-selector/

的详情

示例:

$(function()
{
    var idArray = new Array(); $('#fields').find(':checked').each(function() 
   {
       idArray.push(this.id);
   });

   console.log(idArray);
});

答案 4 :(得分:0)

要检索类型为check(复选框)的已检查输入,请使用":checked"选择器。 这个例子可以解释我的观点:

HTML:

<div id="fields" class="grid">
        <div id="some_id_1" class="itemSortable">
            <div>
                <input id="selected" name="selected" type="checkbox" value="true" checked="checked"/>
            </div>
        </div>
        <div id="some_id_2" class="itemSortable">
            <div>
                <input id="selected" name="selected" type="checkbox" value="true" checked="checked"/>
            </div>
         </div>
        <div id="some_id_n" class="itemSortable">
            <div>
                <input id="selected" name="selected" type="checkbox" value="true"/>
            </div>
        </div>
    </div>

的JavaScript / JQuery的:

$(document).ready(function () {
            alert($("#fields :checked").length);
        });

这个例子将警告第二;已在ID为"fields"的元素中选中已选中复选框的计数。

PS:

  • 我希望这是你要求的。
  • 使用属性checked="checked" 选中
  • 以输入类型复选框