Jquery 第一个('a')和查找('a:eq(0)'之间的差异)

Jquery 第一个('a')和查找('a:eq(0)'之间的差异),jquery,Jquery,有人能详细解释一下在我的例子中,第一个'a'和第二个'a:eq0'之间的确切区别是什么:为什么第一个'a'不起作用,而第二个'a'不起作用 感谢来自的。首先: 给定一个表示一组DOM元素的jQuery对象,.first方法从该集合中的第一个元素构造一个新的jQuery对象 因此.first不接受任何参数,它只从选择器中选择第一个匹配元素。您需要使用: $(this).closest('.menu-item').find('a').first().addClass('active'); 从的开

有人能详细解释一下在我的例子中,第一个'a'和第二个'a:eq0'之间的确切区别是什么:为什么第一个'a'不起作用,而第二个'a'不起作用

感谢来自的。首先:

给定一个表示一组DOM元素的jQuery对象,.first方法从该集合中的第一个元素构造一个新的jQuery对象

因此.first不接受任何参数,它只从选择器中选择第一个匹配元素。您需要使用:

$(this).closest('.menu-item').find('a').first().addClass('active'); 
从的开始。首先:

给定一个表示一组DOM元素的jQuery对象,.first方法从该集合中的第一个元素构造一个新的jQuery对象

因此.first不接受任何参数,它只从选择器中选择第一个匹配元素。您需要使用:

$(this).closest('.menu-item').find('a').first().addClass('active'); 
first不接受任何参数,它是一个jQuery函数,它在一组匹配的元素中工作,这就是它不工作的原因。然而:eqn是一个css伪类。这就是主要的区别

首先,它不接受任何参数,它是一个jQuery函数,它在一组匹配的元素中工作,这就是它不工作的原因。然而:eqn是一个css伪类。这是主要的区别,因为。首先不带参数,jQuery无效

这些是等效的:

$(this).closest('.menu-item').find('a').first().addClass('active'); 
$(this).closest('.menu-item').find('a:eq(0)').addClass('active');
因为.first不带参数,所以jQuery无效

这些是等效的:

$(this).closest('.menu-item').find('a').first().addClass('active'); 
$(this).closest('.menu-item').find('a:eq(0)').addClass('active');

根据first的jQuery文档,first将匹配的元素集减少为集合中的第一个元素,值得注意的是,它不使用选择器,即第一个“a”无效。在您的上下文中考虑这一点,它会将.menu项的集合减少到第一个,而不是找到第一个标记,但最接近的只会找到一个标记,因此您的最接近的代码行和第一个代码行正在做相同的事情。

根据jQuery文档中的第一个,第一个将匹配元素集减少到集合中的第一个。,一个重要的注意事项是,它不带选择器,即第一个“a”无效。在您的上下文中考虑这一点,它将把.menu项的集合减少到第一个,而不是找到第一个标记,但最近的只找到一个标记,因此您最上面的代码行“最近的”和“第一个”正在做相同的事情。

。第一个不带参数。它们完全不同。。。也不接受参数。首先不接受参数。它们完全不同。。。也不拿论点