Jquery对象和DOM对象---Jquery API (1)

一、为什么要用Jquery?

DOM API

1.难用

要想拿到一个对象,要写很长的代码比如document.getElementById('xxx'),但是如果是Jquery的话可以直接$('#xxx')。

2.存在兼容性问题

采用DOM操作的时候往往需要兼容IE和非IE浏览器问题,

3.功能太少,不能与时俱进

DOM可以获取第一个子元素却不能获取第二个子元素,而且有时候还要搞一个判断语句,很麻烦。

Jquery API

1.兼容性好

2.API友好

比如在做事件监听的时候DOM需要addEventListener和attachEvent等等;而Jquery直接为我们封装为on(),bind()。 还有就是它可以链式操作。

3.功能强大,与时俱进

二、什么时候适合用Jquery?

Paste_Image.png

三、Jquery对象与DOM对象可以相互转换

Paste_Image.png

图中代码
var node=document.getElemtById('foo')表示node是DOM获取的一个对象,
var $node=$('#foo')表示$node是Jquery获取的一个对象。
node===$node[0]
node===$node.get(0)
所以,$node[0]===$node.get(0),DOM提供了一个get()API调用方式,这两种写法是等价的。($node[0]/$node.get(0) //Jquery ->DOM ; $(node) //DOM->Jquery )

四、Jquery对象与DOM对象的调用方法不一样

Paste_Image.png
DOM对象只能用DOM API调用,Jquery对象只能用Jquery API来调用。

例如上图所示:
node对象只能通过getAttribute('name')和setAttribute('name','bar')两个DOM API来获取和设置对象的属性;
$node对象只能通过attr('name')和attr('name','bar')两个Jquery API来获取和设置对象的属性。

如果两者用混了会返回undefined!

五、DOM的get()方法和Jquery的eq()方法

Paste_Image.png

上图代码表示:
1、console.log($("div").get(0));//拿到的是DOM元素;
2、console.log($("div").eq(0));//拿到的是Jquery元素;
3、console.log($($("div").get(1)));//DOM元素转换为Jquery元素。

eq()和get()一样,都是获取元素的下标,Jquery对象默认是一个伪数组!

六、after(),before(),append(),prepend(),appendTo() API

Paste_Image.png

上图代码表示:
1、after()方法是将对象作为元素的弟弟放入DOM结构;
2、before()方法是将对象作为元素的哥哥放入DOM结构;
3、append()方法是将对象作为元素的小儿子放入DOM结构;
4、prepend()方法是将对象作为元素的大儿子放入DOM结构;
5、appendTo() 方法表示$("div").append($p)->($p).appendTo$("div"),它们是等价的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 3,466评论 0 44
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    前端进阶之旅阅读 16,681评论 18 503
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 第1章 简介 第2章 DOM节点的创建 2-1 DOM创建节点及节点属性 通过JavaScript可以很方便的获...
    mo默22阅读 839评论 0 8
  • 坚持50天后,我停止了日更。 写下这往篇小文是主要是想表达三个意思 1.我为什么停止日更2.这一周我过得怎么样3....
    Mr__Pan阅读 416评论 2 1