当前位置:编程学习 > JAVA >>

DOM与javascript,jQuery的关系

DOM
 
DOM是W3C(万维网联盟)的标准。它定义了访问HTML和XML文档的标准。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。
DOM是一种与浏览器,平台,语言无关的接口,使用该接口可以轻松地访问页面中所有标准组件。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容,所以如果你下载一个JavaScript语言的参考帮助文档来查的话,就连妇孺皆知的document.write方法也找不到。
 
简单理解:
DOM是document object model其实是浏览器内元素对象的一个总称。
DOM即将页面中的各个元素节点,用树的形状表示出来,提供了标准的访问方法,供我们对它进行操作。
 
W3C DOM 标准被分为 3 个不同的部分:
 
    核心 DOM - 针对任何结构化文档的标准模型
    XML DOM - 针对 XML 文档的标准模型
    HTML DOM - 针对 HTML文档的标准模型
 
与JavaScript的关系
  
通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。要改变页面的某个东西,JavaScript 就需要对 HTML 文档中所有元素进行访问的入口。这个入口,连同对 HTML 元素进行添加、移动、改变或移除的方法和属性,都是通过文档对象模型来获得的(DOM)。
比如:一个<table>是一个DOM对象,javascript可以对其添加,删除,等操作.
 
Jquery
 
jquery是所谓的javascript的框架,其实就是javacript函数的集合,打包.
 
1.jQuery对象和DOM对象
 
DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;
 
代码如下:
[javascript]  
var domObj = document.getElementById("id"); //DOM对象  
var $obj = $("#id"); //jQuery对象;  
 
jQuery对象就是通过jQuery包装DOM对象后产生的对象,它是jQuery独有的。如果一个对象是jQuery对象,那么就可以使用jQuery里的方法
 
例:
[javascript]  
$("#foo").html();//获取id为foo的元素内的html代码,html()是jQuery特有的方法;  
 
上面的那段代码等同于:
[javascript]  
document.getElementById("foo").innerHTML;  
 
注意:在jQuery对象中无法使用DOM对象的任何方法。
例如:$("#id").innerHTML和$("#id").checked之类的写法都是错误的,可以用$("#id").html()和$("#id").attr("checked")之类的 jQuery方法来代替。同样,DOM对象也不能使用jQuery方法。
 
2.jQuery对象和DOM对象的互相转换
 
jquery对象和dom对象是不一样的!比如jquery对象不能使用dom的方法,dom对象不能使用jquery方法,那假如我jquery没有封装我要的方法,那能怎么办呢?这时我们可以将jquer对象转换成dom对象
 
jquery对象转换成 dom对象
 
jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象.
下面代码将演示一个jquery对象转换成dom对象,再使用dom对象的方法
 
代码如下:
[javascript]  
var $cr=$("#cr"); //jquery对象  
var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0);  
alert(cr.checked); //检测这个checkbox是否给选中  
 
dom对象转换成jquery对象
 
对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);
 
代码如下:
[javascript]  
var cr=document.getElementById("cr"); //dom对象  
var $cr = $(cr); //转换成jquery对象  
 
通过以上的方法,可以任意的相互转换jquery对象和dom对象.
 
 
ps:平时用到的jquery对象都是通过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂.
 
建议:如果获取的对象是jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象
例如:var $variable = jquery对象; 
如果获取的是dom对象,则定义如下:
var variable = dom对象
 
总结:
         
    一直都知道jQuery和JavaScript,但是对于DOM的理解一直不是很明白。不明白JavaScript中为什么要讲解DOM?而且对它的理解并没有和其他的学习内容建立起联系,今天通过查资料,才知道它实现的作用。
        在BS阶段中,它是我们在学习中不可获取的内容,DOM把网页和脚本以及其他的编程语言联系了起来,开发人员可以通过文档对象的属性、方法和事件来掌控、操纵和创建动态的网页元素。简单的说,它能让我们轻松的访问页面中的每个节点,对每个节点设置不同的属性,实现不同的操作等。
 
 
补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,