如何在表格中获取选定的行?

时间:2012-03-15 21:16:15

标签: jquery

我有一个表格,其中每行都有一个复选框。

此代码适用于另一个表:

    jQuery('#my_table_id tr').has(':checkbox:checked').closest('tr').each(function() {
      request_arr[i] = jQuery(this).attr('id');
      i++;
    });

现在在这种情况下,我有一个表对象:

    var tbl = $('#my_table') // In my code, this is done dynamically

    // This does not work
    jQuery(tbl + 'tr').has(':checkbox:checked').closest('tr').each(function() {
      request_arr[i] = jQuery(this).attr('id');
      i++;
    });

如何使用tbl等表格对象获取已检查的行? 我尝试了各种下钻,但我无法工作。

更新

这就是我设置html的方式:

<table id="t1"></table>

<div class="bulk_action">
  <div title="Remove requests" class="trash_iconset_grey_16px removeRequest"></div>
  <div title="some other button" class="abc"></div>
</div>

<table id="t2"></table>

<div class="bulk_action">
  <div title="Remove requests" class="trash_iconset_grey_16px removeRequest"></div>
  <div title="some other button" class="abc"></div>
</div>

单击表1下方的“按钮”,将设置tbl = <table id="t1">

@elcanrs解决方案还将获取表nr 2中的已检查行。我只想为表nr 1检查行。

3 个答案:

答案 0 :(得分:3)

jQuery(tbl + 'tr')$($('#my_table') + 'tr')相同,这没有任何意义。这样做:

tbl.find('tr')

答案 1 :(得分:0)

不是jQuery(tbl + ' tr')来计算表格ID和tr之间的空格吗?

答案 2 :(得分:0)

jQuery(tbl + ' tr')

不正确,因为您正在尝试将对象与字符串组合在一起。 你应该使用find方法查找选中的复选框,然后向上移动到第一个tr标签。尝试使用:

tbl.find(':checkbox:checked').closest('tr').each(...);