重复输出值到表中

时间:2012-03-07 04:23:03

标签: jquery

我有下表通过循环从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");
}

2 个答案:

答案 0 :(得分:3)

你可以这样做。有关seen

的说明,请参阅此answer
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");
    }
})    

实例: