如果这是一个非常愚蠢的错误,我道歉,但我对.get()函数有点新意。我完全按照this页面上的说明使用它,但它没有按预期工作。这是他们使用的代码
console.log( $( "li" ).get( 0 ) );
所以我尝试做同样的事情:
$('.a').get(0).addClass('g');
理论上,这应该将类'g'添加到具有类'a'的第一个元素,但它不会。我已经手动将类'g'添加到第一个元素,它确实显示出来,所以它是jQuery不能正常工作。
jQuery 2.1.0
答案 0 :(得分:3)
$.fn.get
如果不与$.fn.map
一起使用,则返回HTMLElement
没有addClass
以及更多jQuery方法。
因此,您必须使用eq
(或基于您想要的:first
)执行以下操作
$('.a').eq(0).addClass('g'); // assuming you want first .a
如果你想要一种本地的方式(出于一些奇怪的原因)那么你可以做
$('.a').get(0).className += " g";
// space is important -------^
答案 1 :(得分:3)
.get()
方法返回jQuery集合的内部数组中的第一个元素,它是一个HTMLElement,而不再是一个jQuery对象。
要获取jQuery集合中的第一个元素,并将其类型保留为jQuery对象,请改用.eq(0)
。
答案 2 :(得分:1)
.get()返回HTMLElement,而不是jQuery对象(http://api.jquery.com/get/)。 HTMLElements没有addClass方法。如果要将类添加到该DOM元素,则需要将其包装到$()中。这个工作:
$($('.a').get(0)).addClass('g');
或者您可以向已检索的HTMLElement添加新类:
$('.a').get(0).className += " g";