我与foreach
和内部foreach
环有敲除结合。我需要的是为每个偶数行应用替代行css规则,无论它是子行还是父行。如果我使用$index如下,那么最后一个子行和第一个父行可能应用了相同的样式。
<tbody data-bind="foreach: items">
<tr data-bind="css: { alt: $index()%2 }">
<td colspan="2">
<a data-bind="attr: { 'href': '@Url.Action("View", "MyController")?itemId=' + Id() }"><span data-bind="text: name"></span></a>
</td>
</tr>
<!-- ko foreach: subItems -->
<tr data-bind="css: { alt: ($index()+$parentContext.$index()+1)%2 }, visible: $parent.childrenVisible()">
<td></td>
<td>
<a data-bind="attr: { 'href': '@Url.Action("View", "MyController")?itemId=' + Id() }"><span data-bind="text: name"></span></a>
</td>
</tr>
<!-- /ko -->
</tbody>
问题:是否有可能在淘汰中使用计数器,并在父循环和子循环的每次迭代中递增?否则,在这种情况下,通常的技巧是什么?
尽可能在样式表中处理样式问题要好得多,而不是求助于代码。这是一个你可以这样做的例子,至少在CSS3中是这样。通过使用:nth-child
,您可以应用替代行样式:
tr {
background-color: #ff0000;
}
tr:nth-child(2n+1) {
background-color: #00ff00;
}