我有一个动态绑定的表:
<table id="test">
<tr>
<td>test1
<td>
</tr>
<tr>
<td>test2
<td>
</tr>
<tr>
<td>test1
<td>
</tr>
<tr>
<td>test2
<td>
</tr>
</table>
我想删除重复的表行,产生这样的结果。
<table id="test">
<tr>
<td>test1
<td>
</tr>
<tr>
<td>test2
<td>
</tr>
</table>
我试图通过这个btnRearrange
点击这样做。
$('#btnRearrange').bind("click", function() {
// want some help hear
});
谢谢。
试试 -
var seen = {};
$('table tr').each(function() {
var txt = $(this).text();
if (seen[txt])
$(this).remove();
else
seen[txt] = true;
});
<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
<td>
</tr>
<tr>
<td>test2
<td>
</tr>
</table>
从这个问题 - JQuery: Remove duplicate elements?采取(并且稍微改变)代码
$('#btnRearrange').bind("click", function() {
var contents = {}, text;
$("#test td").each(function() {
text = $(this).text();
if( !( text in contents ) ) {
contents[text] = true;
}
else {
$( this.parentNode ).remove();
}
});
});
的jsfiddle:http://jsfiddle.net/jKs4k/
干得好:
$('#btnRearrange').bind("click", function() {
$("#test td").each(function () {
var tdText = $(this).text();
$("#test td")
.filter(function () {
return tdText == $(this).text();
})
.not(":first")
.remove();
});
});
在这里尝试一下: