4

我有一个表,我有一个 jQuery 对象,它代表表中的一个 TD。

我希望能够从我的jQuery'd TD所在行的下一行开始循环遍历表中的所有行。

所以如果我有这样的表:

<table>
  <tr><td>A</td><td>B</td><td>C</td></tr>
  <tr><td>D</td><td>E</td><td>F</td></tr>
  <tr><td>G</td><td>H</td><td>I</td></tr>
  <tr><td>J</td><td>K</td><td>L</td></tr>
  <tr><td>M</td><td>N</td><td>O</td></tr>
  <tr><td>P</td><td>Q</td><td>R</td></tr>
</table>

假设我有一个代表 td 的 jQuery 对象,其中有一个 H:

var theTD = $(...the H cell...);

在这种情况下,我想遍历最后 3 行。

那么是否有一段简洁的 jQuery 可以给我相当于:

theTD.nextRow_to_lastRow.each(...
4

6 回答 6

1

我想你在追求这样的事情:

$('td').filter(function() {
  return $(this).text() == 'H';
}).parent().nextAll().each(function() {
  console.log(this);
});

这会给你行:

<tr><td>J</td><td>K</td><td>L</td></tr>
<tr><td>M</td><td>N</td><td>O</td></tr>
<tr><td>P</td><td>Q</td><td>R</td></tr>
于 2013-07-24T14:57:24.513 回答
1

像这样的东西?

var td = $('td:contains("H")');

var tr = $('tr').length;
for(i= td.parent().index()+1; i < tr;i++){
   $.each($('tr:eq('+i+') td'),function(){
      console.log($(this).text());
   });
}

在控制台中查看演示

于 2013-07-24T14:54:36.387 回答
0
var all_td_in_a_table = $("#table-id td")

然后用 for 或 foreach 循环遍历它并搜索 h/div/text 或你想要的

于 2013-07-24T14:48:40.010 回答
0

你的情况很复杂,我也不能完全理解;希望这会有所帮助:通过使用

 var rows = $("#tableid tr td"); 

你将拥有所有的细胞。现在您可以遍历每一个并检查值或文本。jquery中的foreach:

 $(rows).each(function( index ) {
    console.log( index + ": " + $(this).text() );
 });
于 2013-07-24T14:49:20.627 回答
0

您还可以使用仅针对最后三行的 for 循环:

var table = document.getElementById('table'),
    row = table.querySelectorAll('tr');

for(i = 0; i < row.length; i++) {
    if (i >= 3) {
        console.log(row[i]);
    }
}

JSFIDDLE

于 2013-07-24T15:02:09.510 回答
0

在 ilan 的帮助下,我最终到达了那里:

theTD.parent().find("~ tr").each(

其他回复将完成这项工作,但以上是我正在寻找的

于 2013-07-24T15:12:56.480 回答