2013-08-21 136 views
0

我是AngularJS的初学者,真的不想用JQuery来解决我的问题(也许我错了)。如何在特定的td上应用css第一个tr

这里是我的问题:

我想最后TD元素在第一TR表中的应用CSS。

我的代码:

<table> 
    <tr ng-repeat="person in persons | orderBy:'name'"> 
     <td>{{person.name}}</td> 
     <td>{{person.email}}</td> 
    </tr> 
</table> 

所以对于第一TR,最后TD元素应该是<td class="myClass">{{person.email}}</td>

谢谢您的回答和解释。

编辑:我忘记说了,我知道如何在最后TD应用CSS来解决我的问题,但我想用angularjs做到这一点,因为我可以有型动物,并取决于区别,我想申请另一个CSS样式。

回答

1

使用角度的ng-class指令应用样式条件:

<table> 
    <tr ng-repeat="person in persons | orderBy:'name'"> 
     <td>{{person.name}}</td> 
     <td ng-class="{'myClass':$index==0}">{{person.email}}</td> 
    </tr> 
</table>  
5

或者,如果你不想把ID或类,你可以做这样的事情:

table tr:first-child td:last-child {} 

请注意,并非所有浏览器都支持孩子选择

1
.TABLE-CLASS tr:first-child td:last-child{ 
    //style 
} 
0

使用伪类 -

第一孩子伪类的意思是“如果这个元素是其父母的第一个孩子”。 :最后孩子的意思是“如果这个元素是其父母的最后一个孩子”。请注意,只有元素节点(HTML标签)计数,这些伪类忽略文本节点。 所以这些样式会为你工作 -

table tr td:last-child{ 
} 

table tr td:first-child{ 

} 
0

如果只有2 <td>每一行,你可以通过使用CSS +选择避开缺乏在IE8 :last-child支持:

table tr:first-child td + td { 
    /* styles */ 
} 

这将选择任何<td>之前是另一个<td>,并且是每个<table>的第一个<tr>的孩子。