Javascript 在视图中显示的结果表中,以不同的颜色为所有偶数项着色
我正在构建一个MVC应用程序,其中项目显示在表中 以下是视图中包含的表的示例:Javascript 在视图中显示的结果表中,以不同的颜色为所有偶数项着色,javascript,css,asp.net-mvc,Javascript,Css,Asp.net Mvc,我正在构建一个MVC应用程序,其中项目显示在表中 以下是视图中包含的表的示例: <table id="itemsID"> <tr> <th>Obj Name</th> <th>Number</th> <th>Amount</th> <th>Size</th> <th>Prize&
<table id="itemsID">
<tr>
<th>Obj Name</th>
<th>Number</th>
<th>Amount</th>
<th>Size</th>
<th>Prize</th>
</tr>
@for (int i = 0; i < Model.Count; i++)
{
<tr>
<td>
@Html.DisplayFor(model => model[i].m_ObjName)
</td>
<td>
@Html.DisplayFor(model => model[i].m_Number)
</td>
<td>
@Html.DisplayFor(model => model[i].m_Amount)
</td>
<td>
@Html.DisplayFor(model => model[i].m_Size)
</td>
<td>
@Html.DisplayFor(model => model[i].m_Prize)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = Model[i].m_ObjID}) |
@Html.ActionLink("Details", "Details", new { id = Model[i].m_ObjID}) |
@Html.ActionLink("Delete", "Delete", new { id = Model[i].m_ObjID })
</td>
</tr>
}
</table>
很简单,但显然它会影响页面中的所有项目,而不是for循环中显示的项目。我如何具体针对这些项目
编辑
基于每个人的善意解释,我对上面的代码进行了修改。现在,结果列表中的所有偶数tr都会受到影响,包括
下的第一个
,但我希望它被忽略,我如何才能做到这一点?我尝试将ID单独放在for循环中的
上,但它不起作用…只要在I
是否成对时设置不同的颜色:
color = i % 2 == 0 ? color_1 : color_2
当
i
是否成对时,只需设置不同的颜色:
color = i % 2 == 0 ? color_1 : color_2
CSS3
css3可能会帮助你。带你去学校,读一读,或者在行动中看到它
我会推荐解决方案1,因为我认为这是一个更好的实践
注意:两种解决方案都假定“itemID”在任何时候都不相同,因此我们必须根据其他标准选择元素。这就是我将“item table”类添加到
标记的原因
两种解决方案的HTML
<table id="itemsID" class="item-table">
<tr>
<!-- header field names go here -->
</tr>
@for (int i = 0; i < Item.Count; i++)
{
<tr>
<!-- each item's properties go here -->
</tr>
}
注意:tr+tr
选择第一个标记后的所有
标记。这对于跳过标题并对其应用其他样式很有用。更多信息
提示:您也可以仅将样式应用于带有的标题,如下所示:
.item-table tr:first-child {
/* styles for the header row */
}
解决方案2:修改jQuery查询上的选择器
CSS3
css3可能会帮助你。带你去学校,读一读,或者在行动中看到它
我会推荐解决方案1,因为我认为这是一个更好的实践
注意:两种解决方案都假定“itemID”在任何时候都不相同,因此我们必须根据其他标准选择元素。这就是我将“item table”类添加到
标记的原因
两种解决方案的HTML
<table id="itemsID" class="item-table">
<tr>
<!-- header field names go here -->
</tr>
@for (int i = 0; i < Item.Count; i++)
{
<tr>
<!-- each item's properties go here -->
</tr>
}
注意:tr+tr
选择第一个标记后的所有
标记。这对于跳过标题并对其应用其他样式很有用。更多信息
提示:您也可以仅将样式应用于带有的标题,如下所示:
.item-table tr:first-child {
/* styles for the header row */
}
解决方案2:修改jQuery查询上的选择器
按如下方式更改jQuery选择器:
$("#itemsID tr:even").css("background-color", "#FFFFFF");
$("tr.my_special_row:even").css("background-color", "#FFFFFF");
或者把它放在CSS中:
#itemsID tr:nth-child(even) { background-color: #FFFFFF; }
按如下方式更改jQuery选择器:
$("#itemsID tr:even").css("background-color", "#FFFFFF");
$("tr.my_special_row:even").css("background-color", "#FFFFFF");
或者把它放在CSS中:
#itemsID tr:nth-child(even) { background-color: #FFFFFF; }
为循环TR指定一个特定类
<tr class="my_special_row">
<td></td>... etc
</tr>
特定性是你的朋友。给循环的TR一个特定的类
<tr class="my_special_row">
<td></td>... etc
</tr>
特异性是你的朋友。有两种不同的方法。使用纯CSS,它将是(我建议): 或者,您可以将类应用于for循环中的偶数行:
@for (int i = 0; i < Model.Count; i++)
{
var className = i % 2 == 0 ? "even" : "odd";
<tr class="@className">
...
</tr>
}
@for(int i=0;i
有两种不同的方法。使用纯CSS,它将是(我建议):
或者,您可以将类应用于for循环中的偶数行:
@for (int i = 0; i < Model.Count; i++)
{
var className = i % 2 == 0 ? "even" : "odd";
<tr class="@className">
...
</tr>
}
@for(int i=0;i
在C++ C++中使用了 My.Sy.,“这个”和“::”不是强制性的,但是它们在PHP中没有用,IMO。保持它简单。Mc+See在C++中使用,在这里,“这个”和“::”不是强制性的,但是它们在PHP中没有用,IMO。保持简单。我在哪里写这个?在相关的情况下,您可以将一个类添加到两个类中的一个。所有标记的颜色,以及仅具有该类的标记的颜色,该类将覆盖所有标记的颜色集。其他人的jquery解决方案:即使在选择器中似乎更好,但在需要查找某个标记是否成对时,请记住这一点。我将在哪里编写此代码?在相关的情况下,您可以将一个类添加到两个类中的一个。所有标记的颜色,以及仅具有该类的标记的颜色,该类将覆盖所有标记的颜色集。其他人的jquery解决方案是:即使在选择器中似乎更好,但在需要查找某个标记是否成对时,请记住这一点。:即使
是有效的css3伪选择器?它不是。它应该是第n个孩子(偶数)
。是的,无论如何,最好不要通过javascript执行此操作,我认为:甚至都是有效的css3伪选择器?不是。它应该是第n个孩子(偶数)
。更新。是的,无论如何,最好不要通过javascript执行此操作,我想我会尝试此操作,并让您返回结果。@HerveS我希望它有用顺便问一下,这是什么语言@Html.ActionLink资料?@HerveS我添加了更多的信息,也许你想了解更多关于css选择器的信息,或者你想设计标题。我知道什么是css,谢谢XD。我只是从来没有见过(inti=0;I,这是什么?PHP模板引擎语法?PHP以外的另一种语言?我会试试这个,然后告诉你结果。@HerveS我希望它有用。顺便问一下,这是什么语言@Html.ActionLink资料?@HerveS我添加了更多的信息,也许你想了解更多关于css选择器的信息,或者你想设计标题。我知道什么是css,谢谢XD。我只是从来没有见过(inti=0;I,这是什么?PHP模板引擎语法?PHP之外的另一种语言?