jquery中$("#afui").get(0)为什么要加get(0)呢?

$("#afui").get(0).className='myclass';

如果我不加get(0)就无法赋值.
$("#afui")不是就已经的得到那个标签了吗。为什么还要加那个get(0)呢?

首先$("#afui")返回的是jquery筛选出来的符合要求的对象数组,注意不管是否获取到对象返回的都是数组。没有符合要求的也会返回个[]。所以在获取真正对象的时候需要加get(0)

你这里对元素的赋值是采用js普通的方式,所以要获取其数组中真正对象后,才能访问到className这个属性
你也可以这样写$("#afui").attr("className","myclass");

这样它就把$("#afui")得到的所有符合要求的元素的className属性值都设为myclass。追问

$("#afui")得到的是id为afui的标签,id在html页面是唯一的,怎么会是一个数组呢

追答

唯一不唯一看你的设定,你也可以写两个id一样的元素啊,不过一般不会这么做,假设id是唯一的,那么它得到的就是只有一个元素的数组。
返回结果是数组,和你说的id是唯一的不冲突

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-03
$("#afui")得到的是jquery封装的对象,里面提供了jquery的一些方法,并不是html原生对象,通过get(0)才能取到jquery对象里面关联的html对象,从而操作html对象的属性和方法。

如jquery增加样式的写法:$("#afui").addClass('myclass');本回答被提问者采纳
第2个回答  2021-03-11
$("#afui")返回具有该id值的元素子元素数组,加get(0)就可以获得该数组中的第一个元素。get()起到“获取”作用,括号里放0是因为数组中的第一个元素下标是0。
相似回答