如何为表格中每一行的第一个单元格指定样式?
$("#myTable tr td:first").addClass("black");
如何为表格中每一行的第一个单元格指定样式?
$("#myTable tr td:first").addClass("black");
:first-child
代替 :first
。$("#myTable tr td:first-child").addClass("black");
:first
伪类实际上是选择在你的列表中返回的第一个元素。例如,$('div span:first')
只会返回第一个出现的 div 下的第一个 span 元素。
:first-child
伪类选择特定父元素下的第一个子元素,但会返回所有第一个子元素。例如,$('table tr td:first-child')
返回每一行的第一个单元格。:first
时,它只返回第一行中第一个被选中的单元格。你的想法已经很接近了,我认为你只需要使用 :first-child
而不是 :first
,所以代码应该像这样:
$("#myTable tr td:first-child").addClass("black");
就像这样:
$("#myTable tr").each(function(){
$(this).find('td:eq(0)').addClass("black");
});
$("#myTable tr").find("td:first").addClass("black");
:first-child
高效,因为它产生相同的结果但会进入循环。不过,这仍然是find
方法的一个不错的用法。 - Devin Burke尝试:
$("#myTable td:first-child").addClass("black");
find
和创建函数,而仅仅使用:first-child
伪类,你并没有添加太多处理,这些处理在原始代码中已经在使用了。尽管如此,它仍然是一个不错的替代方案。 - Devin Burkefind
语句更快,且(b)至少在代码量方面使用单个选择器更高效。 - Devin Burke