选择每行w/jQuery中的第一个TD

san*_*nta 60 jquery

如何为表格中每行的每个第一个单元格指定样式?

$("#myTable tr td:first").addClass("black");
Run Code Online (Sandbox Code Playgroud)

Dev*_*rke 107

使用:first-child伪类而不是:first.

$("#myTable tr td:first-child").addClass("black");
Run Code Online (Sandbox Code Playgroud)

:first伪类实际上将会选择在您的列表中返回的第一个元素.例如,$('div span:first')将返回唯一正巧返回的第一个div下的第一个跨度.

:first-child伪类选择一特定父下的第一个元素,但返回作为有第一儿童的许多元素.例如,$('table tr td:first-child')返回每一行的第一个单元格.

当您使用时:first,它只返回恰好被选中的第一行的第一个单元格.

有关更多信息,请参阅jQuery文档:


nat*_*lez 9

你非常接近,我认为你需要的只是:first-child代替:first,所以这样的事情:

$("#myTable tr td:first-child").addClass("black");
Run Code Online (Sandbox Code Playgroud)


Ten*_*eff 5

像这样:

$("#myTable tr").each(function(){
    $(this).find('td:eq(0)').addClass("black");
});
Run Code Online (Sandbox Code Playgroud)

  • 不,我知道jQuery在幕后使用了所有这些东西,但是(a)我希望使用单个选择器比使用单个选择器和一个`find`语句快,并且(b)处于就使用单个选择器的代码量而言,效率最低。 (4认同)

bev*_*qua 5

$("#myTable tr").find("td:first").addClass("black");
Run Code Online (Sandbox Code Playgroud)

  • 在TH之后放置TD时,第一个孩子没有帮助,而您正在尝试找到TD.在那种情况下,jq不会返回给你TD,因为它不是行的第一个孩子,而是:首先是方便的. (3认同)