为什么我可以't在jquery中的一个选择器中获取所有第一个td

why i can't get all first td in one selector in jquery?

本文关键字:一个 选择器 获取 td 第一个 我可以 jquery 为什么      更新时间:2023-09-26

为什么我必须这样做:

 $('.inout tbody').find('tr:first td:first')
 //return => Object[td, td, td, td]

而不是

 $('.inout tbody tr:first td:first')
 //return => Object[td]

为什么没有同样的结果?这是伪元素":第一"的问题吗?

编辑AWNSER:

真相的回应是::第一!=:第一个孩子;)

 $('.inout tbody tr:first-child td:first-child')// works !

:first返回堆栈上的第一个元素。我想你正在寻找每一个第一个孩子。

试试这个:

$('.inout tbody tr:first-child td:first-child')

供参考:

:第一个子选择器

虽然:first只匹配单个元素,但:first-child选择器可以匹配多个元素:每个父元素一个。这相当于:nth-child(1)

您要求的是不同的东西:

$('.inout tbody').find('tr:first td:first')

针对$('.inout tbody')中的每个元素请求第一tr中的第一td

$('.inout tbody tr:first td:first')

而这是在要求所有CCD_ 9中的第一个CCD_。


以下选择器将返回第一个td的数组:

$('.inout tbody tr:first-child td:first-child'); 

这个jsFiddle可能有助于验证这个

因为您的第二个选择器将选择:

.inout > tbody > tr:first > td:first'

您应该将其更改为:

 $('.inout tbody tr:first , .inout tbody td:first')