搜索内容并创建自定义选择器过滤器

时间:2011-12-16 18:02:39

标签: javascript jquery

如果有类似的行(在列#34;标题1""标题3")中,我想在表中使用ckack得到第二行(" tr") background-color: red;

enter image description here

在此表中,列"标题1和#34;中的两行都是和#34;标题3"有相似的内容所以第二行(如果它是两行相似的所有行,除了第一行得到css。)得到css background-color: red;,它是如何通过jQuery?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,这应该有效:

var rows = [];

$('#your_table tr:eq(1) td').each(function() {
  rows.push($(this).text());
});

$('#your_table tr:not(:first)').each(function(i) {
  if ($(this).text() != rows[i]) {
    $('#your_table tr:eq(0) td:eq(1)').css('background-color', 'red');

    return false;
  }
});

但这远非优化,所以我会把它留给你。

答案 1 :(得分:0)

以下是一个有效的例子:http://jsfiddle.net/vrPNj/1/

代码:

var vals = [];
var tr = $('tr');

tr.each(function(){
    var $this = $(this);
    var val = $this.children(':first').text() + $this.children(':last').text();
    vals.push(val);
});

for(var i = 0; i < vals.length; i++){
    for(var n = 0; n < vals.length; n++){
        if(n !== i){
            if(vals[i] === vals[n]){
                tr.eq(i).addClass('duplicate');
                tr.eq(n).addClass('duplicate');
            }
        }
    }
}

tr.filter('.duplicate:first').removeClass('duplicate');