我有动态绑定的表:
<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
});
感谢。
答案 0 :(得分:18)
尝试 -
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>
中获取代码(并略有改变)
答案 1 :(得分:3)
$('#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/
答案 2 :(得分:1)
你走了:
$('#btnRearrange').bind("click", function() {
$("#test td").each(function () {
var tdText = $(this).text();
$("#test td")
.filter(function () {
return tdText == $(this).text();
})
.not(":first")
.remove();
});
});
在这里试试: