0

所以我试图找到带有复选框的行,然后从该行中获取一个列值。这是我到目前为止所拥有的:

$('#myTable tbody tr').each(function () {
    var chckbox = $(this).find('.checkItem');
    if (chckbox.checked) {  
    ids.push($(this).find(".id").html());
    }
});

现在的问题是它永远不会进入 if 语句。类名都是正确的。

4

4 回答 4

3
$('#myTable tbody tr').each(function () {
    var chckbox = $(this).find('.checkItem');
    if (chckbox.prop('checked')) {  
        ids.push($(this).find(".id").html());
    }
});

jQuery .prop

于 2013-07-06T19:45:15.843 回答
1

如果你这样做,它也会起作用:

$('#myTable tbody tr .checkItem:checked').each(function () {
    ids.push($(this).closest('tr').find(".id").html());
});
于 2013-07-06T19:56:09.953 回答
1

这将一次性返回所有 ID 数组:

var ids = $('#myTable .checkItem:checked').map(function() {
    return $(this).closest('tr').find('.id').html();
}).get();

注意使用.map而不是循环push内部。.each

.map如果您有一个元素数组并且想要从每个元素中检索一些值到一个数组中,通常是您想要使用的函数。

于 2013-07-06T20:02:59.357 回答
0
$('#myTable tbody tr').each(function () {
  var chckbox = $(this).find('.checkItem:checked');
  if (chckbox.length) {  
    ids.push($(this).find(".id").html());
  }
});
于 2013-07-06T19:46:34.840 回答