需要比较连续行中的某个单元格,并找到该单元格值更改的行

时间:2016-07-11 04:49:20

标签: javascript jquery css

我有一个从数据库动态生成的html表。特定单元格值相同的行表示配对数据,我想用空行分隔这些对。我能想到的最好的方法是找到该值与前一个值的不同之处。这可能吗?

<table id="myTable">
<tr>
    <th>Team #</th>
    <th>Name</th>
    <th>Age</th>
 </tr>
<tbody>
    <tr class="data-in-table">
        <td class="id">12345</td>
        <td>Tom</td>
        <td>46</td>
       <tr class="data-in-table">
        <td class="id">12345</td>
        <td>Dick</td>
        <td>32</td>
    <tr class="data-in-table">
        <td class="id">34567</td>
        <td>Harry</td>
        <td>45</td>
     <tr class="data-in-table">
        <td class="id">76543</td>
        <td>Will</td>
        <td>45</td>
     </tr>
   <tr class="data-in-table">
        <td class="id">76543</td>
        <td>Sam</td>
        <td>45</td>
     </tr>

</tbody>

这是我在比较相邻单元格并尝试根据我的需求进行更改的代码:

 $("#myTable").each(function () {

    $(this).find('tr').each(function (index) {
    var currentRow = $(this);
    var nextRow = $(this).next('tr').length > 0 ? $(this).next('tr') : null;
    if (index%2==0&&nextRow && currentRow(td[0].text() !=     nextRow(td[0].text()) {
  $('#myTable tr:next').after('<tr><td></td><td></td><td></td></tr>');
    }
});
});

我希望看起来像这样:

Team #  Name    Age
12345   Tom     46
12345   Dick    32

34567   Harry   45

76543   Will    45
76543   Sam     45

随着数据库的更新,团队成员将始终彼此相邻,但有时会有一个队友出现在第二个队友之前,表格应反映出来。

1 个答案:

答案 0 :(得分:0)

I found that this works, through trial and error:

var last = ''
var rowCount = $('#myTable >tbody >tr').length;
for (var i=0;i<rowCount-1;i++) {
if (last != $('#myTable tr .id:eq('+i+')').html()) {
var lastRow = $('#myTable tr .id:eq('+i+')')
$(lastRow).parents('tr').before('<tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr>')
}
var last = $('#myTable tr .id:eq('+i+')').html()
 }

I don't know if there is a more efficient way than using a for.. statement to run through each row.