我在页面上有复选框,我得到了已检查的复选框,然后我循环浏览它们;
var checkeds = $('#accTypes input:checked');
var values = "";
for (var i = 0; i < checkeds.length; i++) {
console.log(checkeds[i]);
var cval = checkeds[i].val();
values = values + "," + cval;
}
我发现下面的行会导致错误。
checkeds[i].val()
当我在chrome控制台中打印checkeds [i]变量时,我看到了;
<input type="checkbox" name="accom-check" id="checkboxP12" value="12">
我想获得checkeds [i]变量的值。我怎么能这样做?
答案 0 :(得分:4)
jQuery集合是一个类似于数组的对象,包含本机DOM节点。
当您以checkeds[1]
访问它时,您将获得本机DOM节点,而不是jQuery版本,因此它没有val()
方法。
使用原生值
var cval = checkeds[i].value;
或使用eq()
获取jQuery对象
var cval = checkeds.eq(i).val();
作为旁注,你可以用地图做同样的事情
var values = $('#accTypes input:checked').map(function() {
return this.value;
}).get().join(',');