$(this).find('.checkbox')[i].checked为什么不能选取第二个被勾选的复选框,在第一个复选框没有被选中的情况下。我想根据选中的第i个复选框,获取第i个span标签内的值
时间: 2024-03-26 10:40:26 浏览: 10
可能是因为你的代码中使用了 `find` 方法,该方法会在指定元素的后代元素中查找符合条件的元素。如果第一个复选框没有被选中,那么第二个复选框就不是它的后代元素,因此无法通过 `find` 方法选中。
你可以尝试使用 `eq` 方法来选中指定索引的元素。例如,可以使用以下代码来获取第二个被勾选的复选框对应的 span 标签内的值:
```
var checkedIndex = 1; // 第二个被勾选的复选框的索引为 1
var isChecked = $(this).find('.checkbox').eq(checkedIndex).prop('checked');
if (isChecked) {
var value = $(this).find('span').eq(checkedIndex).text();
console.log(value);
}
```
这里使用了 `eq` 方法来选中索引为 `checkedIndex` 的复选框和对应的 span 标签,然后获取了 span 标签内的文本值。
相关问题
$(this).find('.checkbox')[i].checked为什么不能选取第二个被勾选的复选框,在第一个复选框没有被选中的情况下
$(this).find('.checkbox')[i].checked 只是获取了第 i 个复选框的 checked 属性值,但是它并没有判断复选框是否被选中。要判断复选框是否被选中,需要使用 $(this).find('.checkbox')[i].is(':checked') 来获取该复选框的选中状态。如果要选择第二个被勾选的复选框,可以使用以下代码:
```
$(this).find('.checkbox').each(function(){
if($(this).is(':checked')){
// 处理已选中的复选框
}
});
```
这段代码会遍历所有的复选框,找到被选中的复选框并进行处理。
$(this).find('.checkbox')[i].checked不能获取第二个被选中的复选框,当第一个复选框没有被选中时。我想根据第i个选中的复选框,获取第i个span标签内的值
可以尝试使用以下代码获取第i个选中的复选框,并获取对应的span标签内的值:
```
var checkboxes = $(this).find('.checkbox');
var spans = $(this).find('span');
var checkedIndex = -1;
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
checkedIndex++;
if (checkedIndex === i) {
var value = $(spans[i]).text();
// 处理获取到的值
break;
}
}
}
```
这段代码使用了一个变量`checkedIndex`来记录已经选中的复选框的数量,每次找到一个选中的复选框就将`checkedIndex`加1,如果`checkedIndex`等于当前遍历到的索引i,就说明当前这个复选框是第`checkedIndex+1`个被选中的复选框,此时就可以获取对应的span标签内的值。