如何删除包含相同数据的行

时间:2016-08-18 13:27:52

标签: jquery

我有一个动态生成数据的表。我想知道如何删除<tr>元素中包含相同数据的行,并保留前两个<tr>元素。此问题与this

非常相似
<table id="test">
<tr>
<td>test1<td>
</tr>
<tr>
<td>test2<td>
</tr>
<tr>
<td>test1 a<td>
</tr>
<tr>
<td>test2 b<td>
</tr>
</table>

我希望结果是:

<table id="test">
<tr>
<td>test1<td>
</tr>
<tr>
<td>test2<td>
</tr>
</table>

1 个答案:

答案 0 :(得分:2)

您可以通过循环遍历每个td,然后在删除之前过滤掉以相同字符串开头的其他td来实现此目的。试试这个:

var $tds = $('#test td');
$tds.each(function() {
  var text = $(this).text();
  $tds.not(this).filter(function() {
    return $(this).text().indexOf(text) == 0;
  }).remove();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="test">
  <tr>
    <td>test1<td>
  </tr>
  <tr>
    <td>test2</td>          
  </tr>
  <tr>
    <td>test1 a<td>
  </tr>
  <tr>
    <td>test2 b<td>
  </tr>
</table>