如何只选择第一个孩子:
$('ul.menu > li').addClass('first_li');
但是使用find()方法?
答案 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');
答案 4 :(得分:0)
使用此代码...
$('ul.menu').find('li').eq(0).addClass('first_li');