如何只针对有发现的第一个孩子?

时间:2013-06-29 18:17:55

标签: jquery

如何只选择第一个孩子:

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

但是使用find()方法?

5 个答案:

答案 0 :(得分:3)

您应该使用children(),它等同于您的选择器$('ul.menu > li')

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

答案 1 :(得分:2)

  

我的第一个孩子就像我在问题中所说的那样,而不仅仅是第一个孩子。所以,如果有更多的后代,我不想瞄准它们。

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

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

See demo targeting direct children here

或其他人建议.children('li')

答案 2 :(得分:0)

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

ul.menu li { border-top: 1px solid black; }
ul.menu li:first-child { border-top: none; }

答案 3 :(得分:0)

其他答案正好在:first,但你还需要知道一个不同的方法几乎比:first选择器快4倍(主要是因为你要避免另一个选择器查询)

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

请参阅此参考:https://stackoverflow.com/a/4837885/1253312

答案 4 :(得分:0)

使用此代码...

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