遍历jquery数据表的所有列,并从具有特定类的行中获取数据

时间:2015-01-22 06:32:39

标签: jquery dom jquery-datatables

我试图从一行中具有特定类的jquery数据表中获取数据。

我的表格如下所示:数据表也有分页。

ID  |  DocumentID |  FileName |          |
------------------------------------------
1   |          201| abc.cc    | check box|

我已使用以下代码为某些行添加了一个类:

$('body').on('change', 'input.checked-box', function () {

    if ($(this).prop('checked') == true) {

        $(this).closest('tr').addClass('selectedRow');
    }
    else {
        $(this).closest('tr').removeClass('selectedRow');
    }

    if (table.rows('.selectedRow').data().length > 0) {

        $('#downloadDoc').removeClass('inactive');
        $('#downloadDoc').addClass('active');
    }
    else {
        $('#downloadDoc').removeClass('active');
        $('#downloadDoc').addClass('inactive');
    }
});

在上面的代码中:input.checked-box是一个复选框<input type='checkbox' class='checked-box' id='check0'>,复选框将添加到具有特定ID的每一行。单击复选框时,相应的行将获得class='selectedRow'。因此,上面的代码在选中相应的复选框时为每行添加一个类。到目前为止工作得很好。

现在,当我点击一个按钮(比如class='selectedRow')<button id='downloadDoc' class='active'>行的“DocumentID”列数据(如上表所示) >

我的HTML:

<div class="table-responsive">
  <button id='downloadDoc' class='inactive'>

  <table id="attachmentList" class="display">
     <thead>
        <tr>
           <th></th>
           <th>Attachment Detail Id</th>
           <th>File Name</th>
           <th></th>
         </tr>
     </thead>
     <tbody></tbody>
   </table>
</div>

1 个答案:

答案 0 :(得分:0)

迭代表行并使用特定类选择它们。

然后,获取第二个单元格的文本并将其存储在一个数组中(arr

您可以使用eq()函数来定位每行的第二个单元格。

注意:如果您不知道乞讨,Attachment Detail Id列的索引,您可以这样做:

在特定列中添加ID:

<tr>
   <th></th>
   <th id="att_id">Attachment Detail Id</th>
   <th>File Name</th>
   <th></th>
</tr>

找到特定列的索引,将其存储在可变(i)中并将其传递给eq()函数:

var arr = [];
$('#attachmentList').find('tr').each(function() {
    var that = $(this);
    var i = $('#attachmentList').find('#att_id').index();
    var class = that.attr('class');
    if (class == 'selectedRow') {
        arr.push(that.find('td').eq(i).text());
    }
});
console.log(arr);