如何只选择第一个孩子,例如:
$('ul.menu > li').addClass('first_li');
但是使用 find() 方法?
你应该使用children()
相当于你的选择器$('ul.menu > li')
:
$('ul.menu').children('li').addClass('first_li');
正如我在问题中所说,我指的是第一个孩子,而不仅仅是第一个孩子。所以如果有更多的后代,我不想针对他们。
来自原始选择器的一种简单方法是:
$('ul.menu').find('> li').addClass('first_li');
或者.children('li')
按照其他人的建议。
此外,如果您只是出于样式原因这样做,请考虑使用 CSS 选择器:
ul.menu li { border-top: 1px solid black; }
ul.menu li:first-child { border-top: none; }
使用此代码...
$('ul.menu').find('li').eq(0).addClass('first_li');
其他答案是正确的:first
,但您还需要知道另一种方法比:first
选择器快 4 倍(主要是因为您要避免另一个选择器查询)。
$($('ul.menu').find('li')[0]).addClass('first_li');
请参阅此内容以供参考:https ://stackoverflow.com/a/4837885/1253312