$('input:checkbox:checked')
为我提供一个数组(3项)的已检查输入作为数组。
$('input:checkbox:checked').data('userid')
这为我提供了FIRST检查输入的数据用户ID。结果= 1
有没有办法获取所有已检查输入的数据而无需编写循环? 例如: [1,2,3]
答案 0 :(得分:3)
没有。在没有循环的情况下获取值是不可能的。
你可以避免传统的循环。如果您正在寻找更清洁的解决方案,请使用地图功能
var result = $('input:checkbox:checked').map(function() {
return $(this).attr('userid');
}).get();
console.log(result);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="vehicle" value="Bike"> I have a bike<br>
<input type="checkbox" userid="1" name="vehicle" value="Car" checked> I have a car<br>
<input type="checkbox" userid="2" name="vehicle" value="Car" checked> I have two legs<br>
&#13;
答案 1 :(得分:0)
您可以将自己的函数添加到jquery以避免代码重复。 试试这个:
$.fn.extend({
pluckAttr: function (attr) {
return $(this).map(function(){
return $(this).attr(attr);
}).get();
}
});
$('input:checkbox:checked').pluckAttr('data-userid');