如果使用jquery没有id或类,如何在表中选择单元格内容

时间:2014-04-03 21:10:22

标签: jquery displaytag

我有一个由displaytags生成的表,它看起来如下。

<tbody>
  <tr class="coldata">
    <td>02063873320</td>
    <td>ORD81268679</td>
    <td>80%</td>
    <td>6</td>
    <td>84070063962913</td>
    <td><img src="xyz"/></td>
  </tr>
  <tr>
    .
    .
    .
  </tr>

每一行在最后一个单元格中都有一个图像,当我点击单元格时,我想调用一个Jquery函数,该函数将该行中第5个单元格的值发送给一个动作类。

我想知道如何选择第5个单元格并将其作用于动作类。任何人都可以建议选择器和函数来调用动作类

1 个答案:

答案 0 :(得分:1)

如果行都具有coldata类,则可以使用:eq获取第五个单元格(索引4),如下所示:

var fifthCells = $("tr.coldata td:eq(4)");

...然后挂钩他们的click事件,然后从那里导航:

fifthCells.click(function() {
    var $td = $(this); // The specific `td` that was clicked
    // ...do something with that specific `td`
});

如果它不总是第五个单元格,但始终是 last 之前的单元格,则可以使用last-of-type

var lastCells = $("tr.coldata td:last-of-type").prev('td');

或者,如果它们之前是唯一具有img元素的元素:

var cellsWithImages = $("tr.coldata td img").closest("td").prev('td');

......等等。


附注:如果表的内容是动态的(或者即使它们不是动态的话),使用委托的处理程序可能会很有用。以下是每行中第五个click的委派td处理程序:

// fifthCells
$("table.some-class").on("click", "tr.coldata td:eq(4)" function() {
    // `this` is the DOM element for the td that was clicked
});