我有下表通过循环从db输出值,看起来像这样:
<table class="myData">
<tr>
<td class="lbl">
Item 1:
</td>
<td>
Amateur Team
</td>
</tr>
<tr>
<td class="lbl">
Item 2:
</td>
<td>
New School
</td>
</tr>
...
<tr>
<td class="lbl">
Item 53:
</td>
<td>
New School
</td>
</tr>
</table>
我想使用jQuery突出显示第二列中的重复值,可能是通过更改颜色。可以这样做吗?
if (duplicate(s)) {
$(".myData td:nth-child("2").css("color","red");
}
答案 0 :(得分:3)
你可以这样做。有关seen
var seen = {};
$('.myData td:nth-child(2)').each(function() {
var txt = $(this).text();
if (seen[txt])
$(this).css('color','red');
else
seen[txt] = true;
});
对不起,我刚才意识到这不会突出第一次出现。如果其他人还没有回答我今晚晚些时候回家,我会解决这个问题。
答案 1 :(得分:1)
您可以这样做:
制作重复计数的地图
var vals = {};
$(".myData td:nth-child(2)").each(function(i, e) {
var txt = $(e).text();
var val = vals[txt];
vals[txt] = val == null ? 1 : val + 1;
})
标记重复
$(".myData td:nth-child(2)").each(function(i, e) {
var txt = $(e).text();
if(vals[txt] > 1) {
$(e).css("color","red");
}
})
实例: