选择一列(jQuery)

3zz*_*zzy 3 javascript css jquery css-selectors jquery-selectors

$('.table tbody td:eq(3)').addClass('col4');
Run Code Online (Sandbox Code Playgroud)

..works,但只选择第一个单元格,而不是列中的所有单元格.

cle*_*tus 13

尝试:

$(".table tbody td:nth-child(4)").addClass("col4");
Run Code Online (Sandbox Code Playgroud)

注意:我在这里放4,因为它:eq(n)是从零开始的,并且:nth-child(n)是基于1的.

你偶然发现了两者之间的关键区别.eq(3)将返回一个元素,整个集合中的第4个元素.很像是如何:first只返回一个元素(最大值),而:first-child可以返回多个元素.

  • 这也说明了为什么应该怀疑jQuery的`:eq`选择器.它不像上下文那样适用于上下文中的选择器部分:psuedo-class选择器,而是适用于其选择性的选择器.由于它不是标准的CSS选择器,它还强制使用Sizzle库,而不是在较新的浏览器中使用快速`querySelectorAll`实现.在需要此功能的地方,请避免使用`:eq`选择器; 改为在结果上使用`.eq()`. (4认同)