0

我有这个结构:

<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 的经验,所以我被卡住了。some_id_x有人可以帮助使用 jQuery 脚本来获取选定复选框的所有 id 数组(例如)吗?

4

5 回答 5

2

要获取所选复选框id的最近父级的 s 数组,请尝试以下操作:.itemSortable

var idArray = $('#fields').find(':checked').map(function() {
    return $(this).closest('.itemSortable').prop('id');
}).get();

您似乎有很多重复的id属性,但这意味着您的 HTML 无效并且会导致代码出现问题。

于 2012-12-18T13:56:09.417 回答
1

首先你自己得到复选框:

$(':input:checked');

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

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

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

var ids = [];
$(':input:checked').parents('.itemSortable').each(function() {
    ids.push(this.id);
});
于 2012-12-18T14:00:07.220 回答
0

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

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

于 2012-12-18T13:55:20.587 回答
0

使用:checked 选择器

http://api.jquery.com/selected-selector/上的详细信息

例子:

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

   console.log(idArray);
});
于 2012-12-18T13:56:23.713 回答
0

为了检索类型检查(复选框)的检查输入,请使用":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"
于 2012-12-18T14:19:18.277 回答