尝试使用最近和.find函数来拉取表头字段

时间:2016-07-20 18:23:08

标签: javascript jquery dynatable

我正在尝试拉取表格上的标题字段,以便我可以手动调整字段的大小。我想要的标题有“paymentStatus”的data-dynatable-column。这是检查每个绑定到特定表的函数:

  $("#DetCheckResults td").each(function () {

             var xyzh = $(this).html();
             var tdId = $(this).closest('th').find(".dynatable-head").text();   

             alert("Value of tdId field is " + tdId) ;

              xyzh = xyzh.replace(/,/g, "");

               if ($.isNumeric(xyzh))
               {

                  $(this).css("text-align", "right");
               }                                                  

              if (tdId === "paymentStatus") 
              {

                  $(this).css("width", "10%");
              }        
           });

以下是对表格的描述:

      <table class="tablesaw tablesaw-stack table-responsive" id="detailCheck_search_results" data-tablesaw-mode="stack">
        <thead>
          <tr>
            <th class="dynatable-head" data-dynatable-column="transmittal"><a class="dynatable-sort-header" href="#">Transmittal</a></th>
            <th class="dynatable-head" data-dynatable-column="naid"><a class="dynatable-sort-header" href="#">NAID</a></th>
            <th class="dynatable-head" data-dynatable-column="transmittalTotal"><a class="dynatable-sort-header" href="#">Transmittal Total</a></th>
            <th class="dynatable-head" data-dynatable-column="checkNumber"><a class="dynatable-sort-header" href="#">Check Number</a></th>
            <th class="dynatable-head" data-dynatable-column="payeeId"><a class="dynatable-sort-header" href="#">Payee ID</a></th>
            <th class="dynatable-head" data-dynatable-column="paymentStatus"><a class="dynatable-sort-header" href="#">Payment Status</a></th>
       </tr>
          </thead>
          <tbody>                                                       
             <tr>
                 <td style="text-align: left;">SFF CB 16 00005</td>
                 <td style="text-align: left;">CASANDI500</td>
                 <td style="text-align: right;">7,181.42</td>
                 <td style="text-align: right;">403053601263</td>
                 <td style="text-align: left;">XXXXX0934</td>
                 <td style="text-align: left;">A</td>
             /tr> 
        /table>

你能看一下'tdId'字段的定义,看看我如何正确地拉出标题。感谢

1 个答案:

答案 0 :(得分:1)

您正在错误地遍历表格dom。您正在寻找的元素不是您正在操作的td的直接祖先。

你需要这样做:

$(this).closest("table").find("th").eq($(this).index());

并引用您需要执行的data-id:

tdId.data("dynatable-column") === "paymentStatus"

请参阅此jsfiddle(我将样式更改更改为颜色以轻松查看更改)

https://jsfiddle.net/algorithmicMoose/p3L3bov2/