访问表格单元格内的div的内容

时间:2017-01-29 01:20:20

标签: javascript jquery html

I have a JSFiddle here

我正在尝试使用类' .item_description'来访问div的文本内容。对于已经选中复选框的表中的所有行,但我似乎无法得到它。复选框位于每行的嵌套表中。

我的HTML是:

<table id="table-tasks-list" class="table-hover">
  <tbody>
    <tr id="row-task-10572" class="task-modal-row">
      <td >
        <div class="task_description pull-left" style="padding:5px 0 0 5px;">Qui at dolore sit alias cum voluptate ad...</div>
        <table class="pull-right" style="border:none;">
          <tbody>
            <tr>
              <td style="width:80px;border:none;">2015-02-23</td>
              <td class="hours" style="width:30px;border: none;">8.00</td>
              <td class="row-icon tasks-check-box" style="border: none;">
                <label class="checkbox-hold">
                  <input type="checkbox" name="bill-task" id="chk-10572" class="task-checkbox ion-fw" checked=""><span class="fake-input checkbox-icon ion-android-checkbox-outline-blank ion-fw" data-chk-id="10572"></span></label>
              </td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
    <tr id="row-task-10573" class="task-modal-row">
    ....

在我的JS中,我这样做:

$('table#table-tasks-list tbody tr td input.task-checkbox').each(function(i, check) {       
  if ($(check).is(':checked')) {
    console.log($(check).closest('table#table-tasks-list tbody tr').find('.task_description').text());
 }     
});

但我得到空洞的结果。我错过了什么?谢谢!

4 个答案:

答案 0 :(得分:3)

使用

$(check).closest(".task-modal-row").find(".task_description").text();

访问最近的.task_description

的内容

答案 1 :(得分:2)

根据你的代码,它应该是这样的:

$(check).closest('.task-modal-row').find('.task_description').text()

演示:https://jsfiddle.net/TheRealPapa/sw5Lh6pa/1/

答案 2 :(得分:1)

您的closest()定位整个表格,并输出所找到的所有.task-description的内容,而不管是否有复选框。您只需要前往包含tr

console.log($(check).closest('tr[id^="row-task-"]').find('.task_description').text());

答案 3 :(得分:0)

我不知道为什么它不起作用。但是,我相信我遇到了类似的问题并通过在循环中使用$(this)而不是使用回调函数的第二个参数(在您的示例中为check)来修复它。我希望这有帮助...