【发布时间】:2013-06-27 07:49:51
【问题描述】:
如何只选择第一个喜欢的孩子:
$('ul.menu > li').addClass('first_li');
但是使用 find() 方法?
【问题讨论】:
标签: jquery
如何只选择第一个喜欢的孩子:
$('ul.menu > li').addClass('first_li');
但是使用 find() 方法?
【问题讨论】:
标签: jquery
使用此代码...
$('ul.menu').find('li').eq(0).addClass('first_li');
【讨论】:
你应该使用children(),它相当于你的选择器$('ul.menu > li'):
$('ul.menu').children('li').addClass('first_li');
【讨论】:
正如我在问题中所说,我指的是第一个孩子,而不仅仅是第一个孩子。所以如果有更多的后代,我不想针对他们。
来自原始选择器的一种简单方法是:
$('ul.menu').find('> li').addClass('first_li');
See demo targeting direct children here.
或其他人建议的.children('li')。
【讨论】:
:first 的其他答案是正确的,但您还需要知道,另一种方法比 :first 选择器快 4 倍(主要是因为您要避免另一个选择器查询)。
$($('ul.menu').find('li')[0]).addClass('first_li');
【讨论】:
另外,如果您只是出于样式原因这样做,请考虑使用 CSS 选择器:
ul.menu li { border-top: 1px solid black; }
ul.menu li:first-child { border-top: none; }
【讨论】: