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>
答案 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++;
});
答案 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/