0

如何只选择第一个孩子,例如:

$('ul.menu > li').addClass('first_li');

但是使用 find() 方法?

4

5 回答 5

3

你应该使用children()相当于你的选择器$('ul.menu > li')

$('ul.menu').children('li').addClass('first_li');
于 2013-06-29T18:21:58.343 回答
2

正如我在问题中所说,我指的是第一个孩子,而不仅仅是第一个孩子。所以如果有更多的后代,我不想针对他们。

来自原始选择器的一种简单方法是:

$('ul.menu').find('> li').addClass('first_li');

在此处查看针对直接儿童的演示

或者.children('li')按照其他人的建议。

于 2013-06-29T18:19:04.293 回答
0

此外,如果您只是出于样式原因这样做,请考虑使用 CSS 选择器:

ul.menu li { border-top: 1px solid black; }
ul.menu li:first-child { border-top: none; }
于 2013-06-29T18:23:42.123 回答
0

使用此代码...

$('ul.menu').find('li').eq(0).addClass('first_li');
于 2013-07-02T06:07:50.030 回答
0

其他答案是正确的:first,但您还需要知道另一种方法比:first选择器快 4 倍(主要是因为您要避免另一个选择器查询)。

$($('ul.menu').find('li')[0]).addClass('first_li');

请参阅此内容以供参考:https ://stackoverflow.com/a/4837885/1253312

于 2013-06-29T18:28:29.167 回答