我有一个动态生成数据的表。我想知道如何删除<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>
答案 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>