如何根据td为tr添加css属性

时间:2012-12-03 18:08:15

标签: javascript jquery

我想根据表格中的td单元格值将类应用于tr。

我的HTML

<table class="k-focusable">
 <tr>
  <th>Name</th>
  <th>Favorite color</th>
<th> status</th>
 </tr>
  <td>James</td>
  <td>red</td>
<td>false</td>
 </tr>
 <tr>
  <td>John</td>
  <td>blue</td>
  <td>true</td>
 </tr>
</table>

var cellIndexMapping = { 2: true };
$("table.k-focusable tbody tr").each(function (rowIndex) {
            $(this).find("td").each(function (cellIndex) {
                if (x[cellIndex]) {
                    var c = $(this).text();
                    if (($.trim(c) == "false") || ($.trim(c) == "null")) {
                        $("table.k-focusable tbody tr").find("td").addClass("hover");
                    }
                }
            });
        });

.hover
{
 font-weight:bold
}

当我这样做时,每一行都有这个类悬停。但我希望只有在td值为false或null时才添加该类。

3 个答案:

答案 0 :(得分:5)

试试这个

$("table.k-focusable tbody tr td:contains('false')")

答案 1 :(得分:2)

试试这个

$("table.k-focusable tbody tr").each(function(rowIndex) {
    var $td = $(this).find("td:eq(2)");
    var c = $td.text();
    if (($.trim(c) == "false") || ($.trim(c) == "null")) {
        $td.closest('tr').addClass("hover");
    }
});​

<强> Check Fiddle

首先,您不需要第二个$.each迭代td。 然后,您可以使用此

引用要更改的td

答案 2 :(得分:0)

在您的测试if (($.trim(c) == "false") ...中,您选择所有td。您只需要将类应用于当前单元格,因为您已经在单元格中循环:

$(this).addClass("hover");