将css类添加到最近的tr标记

时间:2017-03-21 13:27:03

标签: jquery html razor

我有一个表,我想在一些tr中添加一个css类。我有这个代码

@for (int i = 0; i < Model.Items.Length; i++)
{
  <tr>
   @if (!Model.Items[i].IsActive)
   {
    <script>
     $(function () {
      $(this).closest("tr").addClass("inActiveTr");
     });
    </script>
   }
<td> ... </td>
...
</tr>
}

但它没有做任何事情。怎么了?

如果我只是写

$("tr").addClass("inActiveTr");

在函数内部,它将该类提供给页面中的所有tr

JSFIDDLE

1 个答案:

答案 0 :(得分:1)

为什么不在你的剃须刀服务器端这样做:

@for (int i = 0; i < Model.Items.Length; i++)
{
  <tr@Html.Raw(!Model.Items[i].IsActive ? " class=\"inActiveTr\"" : string.Empty)>
    <td> ... </td>
    ...
  </tr>
}

如果出于某种原因你真的想使用jQuery来添加类,那么你需要某种行的标识符,以便你可以定位它:

@for (int i = 0; i < Model.Items.Length; i++)
{
    <tr id="row@(i)">
        <td> ... </td>
        ...
    </tr>

    @if (!Model.Items[i].IsActive)
    {
        <script>
            $(function () {
                $('#row@(i)').addClass("inActiveTr");
            });
        </script>
    }
}