jQuery - 找到匹配内容的TD,然后找到最接近的TD

时间:2015-03-26 04:14:08

标签: jquery html

以下是我所拥有的表格的示例。

我想要的是一个jQuery,它将在第一列中搜索ID = 16,然后找到该列右侧两列的内容(例如,在这种情况下为105 L)。

它可能并不总是数字16,但在这种情况下,它将始终是我选择的任何ID右侧的第2列(即,colspan = 3的列)。

这可能吗?

      <tr>
        <td class="table-inner report-centre">15</td>
        <td class="table-inner">Question here </td>
        <td class="centre"></td>
        <td class="centre danger"><span class="glyphicon glyphicon-ok"></span></td>
        <td class="centre"></td>
      </tr>
      <tr>
        <td class="table-inner report-centre">16</td>
        <td class="table-inner">Amount here </td>
        <td class="table-inner" colspan="3">105 L</td>
      </tr>
      <tr>
        <td class="table-inner report-centre">17</td>
        <td class="table-inner">Is everything okay? </td>
        <td class="centre success"><span class="glyphicon glyphicon-ok"></span></td>
        <td class="centre"></td>
        <td class="centre"></td>
       </tr>

1 个答案:

答案 0 :(得分:2)

您可以执行类似

的操作
var value = 16
var l = $('td:first-child').filter(function(){
    return $(this).text().trim() == value;
}).siblings(':nth-child(3)').text();

console.log(l)

演示:Fiddle

我不推荐:contains,因为它可以返回部分匹配


如果要使用colspan=3找到td,请使用属性equals selector

var value = 16
var l = $('td:first-child').filter(function(){
    return $(this).text().trim() == value;
}).siblings('[colspan=3]').text();

演示:Fiddle