转载:JavaScript和DOM的关系


原文地址

http://mp.weixin.qq.com/s?__biz=MzA4NTgzMjE2Ng==&mid=402942262&idx=1&sn=25597719c1577d13376cd62541c17600&scene=4#wechat_redirect


导语

   本文主要讲解jquery和DOM的区别和联系,以及jquery对象和DOM对象方法的区别和相互转化。


 DOM

DOM是W3C(万维网联盟)的标准。它定义了访问HTML和XML文档的标准。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。

简单理解:

DOM是document object model其实是浏览器内元素对象的一个总称。

DOM即将页面中的各个元素节点,用树的形状表示出来,提供了标准的访问方法,供我们对它进行操作。


  DOM与JavaScript的关系


通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的元素。

比如:一个<table>是一个DOM对象,javascript可以对其添加,删除,等操作.


jquery对象和DOM对象
 DOM

DOM对象,即是我们用传统的方法(javascript)获得的对象

jQuery对象即是用jQuery类库的选择器获得的对象;

 

代码如下:


var domObj = document.getElementById("id"); //DOM对象  

var $obj = $("#id"); //jQuery对象;  


jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。

如果一个对象是jQuery对象,那么就可以使用jQuery里的方法


例:

$("#foo").html();//获取id为foo的元素内的html代码,html()是jQuery特有的方法;  

上面的那段代码等同于:

document.getElementById("foo").innerHTML;  



注意:在jQuery对象中无法使用DOM对象的任何方法。

例如:$("#id").innerHTML和$("#id").checked之类的写法都是错误的,

可以用$("#id").html()和$("#id").attr("checked")之类的 jQuery方法来代替。

同样,DOM对象也不能使用jQuery方法。





jQuery对象和DOM对象的互相转换 




jquery对象和dom对象是不一样的!比如jquery对象不能使用dom的方法,dom对象不能使用jquery方法,

那假如我jquery没有封装我要的方法,那能怎么办呢?这时我们可以将jquer对象转换成dom对象

 

jquery对象转换成 dom对象


jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。

可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象.



下面代码将演示一个jquery对象转换成dom对象,再使用dom对象的方法

代码如下:

var $cr=$("#cr"); //jquery对象  

var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0);  

alert(cr.checked); //检测这个checkbox是否给选中  



dom对象转换成jquery对象

对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);

var cr=document.getElementById("cr"); //dom对象  

var $cr = $(cr); //转换成jquery对象  


通过以上的方法,可以任意的相互转换jquery对象和dom对象.





ps:平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂.

建议:如果获取的对象是jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象

例如:var $variable = jquery对象; 

如果获取的是dom对象,则定义如下:

var variable = dom对象



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值