jquery中一些方法的分辨

1. $(".classname1").find(".classname2")[0]
2. $(".classname1").find(".classname2").get(0)
3. $(".classname1").find(".classname2").eq(0)
4. $(".classname1").find(".classname2").first()

请问jquery中的这几种方法最后拿到的结果有什么不一样?看了一下文档,来确认一下自己的理解对不对···

特别是$(".classname1").find(".classname2")[0]最后拿到的是jquery对象还是dom对象?

阅读 2.6k
3 个回答

$(".classname1").find(".classname2")[0]===$(".classname1").find(".classname2").get(0)

http://www.css88.com/jqapi-1.... 文档有说明的吧,比如get 返回的就是dom对象了。

.find()方法返回的是Jquey对象,jquery是一种类数组对象,后面使用.find()[0],取到的就是Jquery对象里包含的DOM。
.get()方法返回的就是DOM对象,而
.eq()返回的是JQuery对象。
推荐你看我写的两篇文章,模仿JQ实现的,你看了应该就明白了JQ对象是什么了。

也有github源码地址
希望对你有帮助,也希望你不要吝啬你的Star

我之前看《锋利的jquery》里开头就有介绍,dom对象与jq对象如何相互转换。
dom对象转换为jq对象--->$(dom对象),用$()把dom对象包起来就是jq对象了。
jq对象转为dom对象,两个方式,①jq对象[index];②jq对象.get(index)。
所以你问的前两个都是返回的dom对象。
其他jq方法返回的当然也都是jq对象了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进