所以我试图找到带有复选框的行,然后从该行中获取一个列值。这是我到目前为止所拥有的:
$('#myTable tbody tr').each(function () {
var chckbox = $(this).find('.checkItem');
if (chckbox.checked) {
ids.push($(this).find(".id").html());
}
});
现在的问题是它永远不会进入 if 语句。类名都是正确的。
所以我试图找到带有复选框的行,然后从该行中获取一个列值。这是我到目前为止所拥有的:
$('#myTable tbody tr').each(function () {
var chckbox = $(this).find('.checkItem');
if (chckbox.checked) {
ids.push($(this).find(".id").html());
}
});
现在的问题是它永远不会进入 if 语句。类名都是正确的。
$('#myTable tbody tr').each(function () {
var chckbox = $(this).find('.checkItem');
if (chckbox.prop('checked')) {
ids.push($(this).find(".id").html());
}
});
如果你这样做,它也会起作用:
$('#myTable tbody tr .checkItem:checked').each(function () {
ids.push($(this).closest('tr').find(".id").html());
});
这将一次性返回所有 ID 数组:
var ids = $('#myTable .checkItem:checked').map(function() {
return $(this).closest('tr').find('.id').html();
}).get();
注意使用.map
而不是循环push
内部。.each
.map
如果您有一个元素数组并且想要从每个元素中检索一些值到一个数组中,通常是您想要使用的函数。
$('#myTable tbody tr').each(function () {
var chckbox = $(this).find('.checkItem:checked');
if (chckbox.length) {
ids.push($(this).find(".id").html());
}
});