1

如果里面的数据与同一行的第三列 td 内的数据匹配,我需要做的是向第一列 td 添加一个类。

http://jsfiddle.net/rUssu/

html表格

<table border="1">
   <tr><th>first</th><th>second</th><th>third</th></tr>
   <tr><td>0</td><td>1</td><td>2</td></tr>
   <tr><td>3</td><td>4</td><td>3</td></tr>
   <tr><td>6</td><td>7</td><td>9</td></tr>
 </table>

javascript/jquery

var cPrice = $('th').filter(':contains("first")');
var cDefault = $('th').filter(':contains("third")');

cp = cPrice.index() + 1;
cd = cDefault.index() + 1;

$('table td:nth-child(' + cp + ')').filter(function () {
   //alert($(this).text());
   var temp = $(this).index() + 2;
   //alert(temp);

   return $(this).text() != $('table td:eq('+ temp +')').text();
}).addClass("boom");

css

th{padding:5px;}
td{text-align:center;}
.boom{color:red;}
4

2 回答 2

2

http://jsfiddle.net/rUssu/1/

return $(this).text() != $(this).nextAll().eq(1).text();

您的选择器正在获取所有 TD 的临时 TD,而不仅仅是当前行中的那些。

于 2013-02-14T00:24:50.230 回答
2

您可以单独遍历每一行并将单元格 1 与单元格 3 进行比较,类似于:

$('table tr').each(function () {
    var $firstCell = $('td:eq(0)', this);
    var $thirdCell = $('td:eq(2)', this);

    if($firstCell.text() === $thirdCell.text()){
        $firstCell.addClass('boom');
    }
})

编辑

再次查看您的代码后,我相信使用当前单元格的兄弟姐妹()也应该可以工作,类似于:

$('table td:nth-child(' + cp + ')').filter(function () {
      return $(this).text() === $(this).siblings().eq(1).text();
}).addClass("boom");

演示- 将当前单元格与第二个下一个兄弟单元进行比较


于 2013-02-14T00:26:59.133 回答