更新:抱歉,我的IE 9配置不好:应该设置它以便它接受使用ActiveX元素。我做完之后效果很好。对不起,这是一个扰动。
问题:我想更改每个第3张表格的颜色。
初始DOM :
<table border="1">
<tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
<tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
<tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
</table>
结果DOM
<table border="1">
<tr><td>TD #0</td><td>TD #1</td><td>-here my color changed green- TD #2</td></tr>
<tr><td>TD #3</td><td>TD #4</td><td>-here my color changed green- TD #5</td></tr>
<tr><td>TD #6</td><td>TD #7</td><td>-here my color changed green- TD #8</td></tr>
</table>
为了实现这一点,我尝试了一个CSS-3伪类:
$("tr td:nth-child(3)").css("color", "green");
它在FF,Chrome中运行良好..但在IE 9中失败。
相应的Jquery过滤器的表达式是什么?
提前致谢
答案 0 :(得分:2)
更新:我没有意识到你为多个tr
做了这个。这是合适的解决方案
$("tr").each(function(){
$(this).children("td:eq(2)").css("color","red");
});
以下解决方案仅适用于第一个tr
。
jquery selctor返回一个dom元素数组,因此你总是可以使用简单的数组索引直接获取一个元素。
var elem = $("tr td")[2];
$(elem).css("color","red");
这也可以,因为它是原生的jQuery而不依赖于css:
$("tr td:eq(2)").css("color", "red");
注意:这两种技术都使用基于0的索引