2016-08-18 66 views
1

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

<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> 
+0

获取代表TD在该表的集合:创建一个名为“_uniqueValues”新名单:遍历TD_collection和检查_unique值,如果不存在,则添加( current_loop_object)列表否则从DOM中删除(current_loop_object)。请张贴相关代码/您的尝试:p编辑:我不知道js,sry。 – ABuckau

回答

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>