jQuery - 获取所选复选框的索引

时间:2012-02-03 02:21:11

标签: jquery

jQuery 1.7.1 - 我有一个复选框列,想要将所选框的索引作为数组或遍历每个复选框 - 检查是否选中它,如果选中则获取索引。

HTML

<tr>
  <td><input type="checkbox" class="it" name="it"></td>
</tr>
<tr>
  <td><input type="checkbox" class="it" name="it"></td>
</tr>

3 个答案:

答案 0 :(得分:4)

如果使用.each() method,jQuery会将索引作为参数传递给您提供的回调函数。 (您可能会看到很多代码使用.each()而没有回调的参数,但这只是因为您通常不需要知道索引 - 但是当您这样做时它就在那里。)调用你的函数jQuery将this设置为当前元素:

$(".it").each(function(i) {
   if (this.checked) {
       alert("Checkbox at index " + i + " is checked.");
   }
});

注意索引是从零开始的,如果不明显,它是与您提供的选择器匹配的元素集中的索引(不在文档中的所有元素中)。

另请注意,上面我按类选择元素,但您可以通过name属性选择:

$('input[name="it"]')

答案 1 :(得分:2)

var index = 0;
$('.it').each(function() {
    if (this.checked) {
        alert("Box is checked at index=" + index);
    }
    index++;
});

示例:http://jsfiddle.net/bvUND/

答案 2 :(得分:0)

这是一个旧帖子,但是我在其他地方帮忙时遇到了它,只是想添加一些关于你没有明确的索引var以跟踪索引的请求的代码。 index()返回的值是从零开始的。

var myCheckboxes = $("input[type=checkbox].it");

myCheckboxes.each(function(){
    alert(myCheckboxes.index(this));
    // do whatever you need with the index of the checkbox
}

有关.index()的更多信息,请访问:http://api.jquery.com/index/