Dom对象和JQuery对象的详细介绍及其区别

一直搞不清Dom对象和JQuery对象之间的区别,今天好好总结下javascript

1.dom对象(摘抄自百度百科http://baike.baidu.com/link?url=4L8bZ7kW6kE-it4F-1LUIgaPhjuTTPIVJu9wZafjm-M7QJw5J8kkAWUpItGBb-eoEXK9-q8vwmz6funpAOfQsacss

DOM—Document Object Model,它是 W3C国际组织的一套Web标准。它定义了访问HTML文档对象的一套属性、方法和事件。
DOM是以 层次结构组织的节点或信息片段的集合。 文档对象模型(Document Object Model)是给HTML与XML文件使用的一组API。DOM的本质是创建网页与 脚本语言或程序语言沟通的桥梁。
浏览器对象是一个 分层结构,也称为 文档对象模型
(1)打开网页后,首先看到的是浏览器窗口,即顶层的window对象。
(2)其次,看到的是网页文档的内容,即document文档。
(3)定位对象:
window.document.myform.text1
document.myform.text1
由于window 窗口对象是全部页面的根对象,因此经常省略。
(4)地址对象location和历史对象history,它他对应IE浏览器中的地址栏和前进/后退按钮。
 
2.JQuery对象(摘抄自http://www.poluoluo.com/jzxy/201110/144577.html
  首先介绍 jQuery 的几个核心函数,在 jQuery
中它们起着相当重要的做用,在实际的前端开发过程当中用到最多的也是它们。
① jQuery(elements)
  将一个或多个DOM元素转化为jQuery对象。
  这个函数也能够接收XML文档和Window对象(虽然它们不是DOM元素)做为有效的参数。
  返回值:jQuery 对象
  参数
    elements:  用于封装成 jQuery 对象的 DOM 元素
代码示例
 
// 将当前页面的背景色设为黑色
jQuery(document.body).css( "background-color", "black" );

  再看如下代码
// 将当前页面的背景色设为黑色
$(document.body).css( "background-color",
"black" );
  代码也能够正常运行,而且执行的效果跟前面的代码一致;那么这儿的 $ 和前面的 jQuery 标识符到底有什么关系呢?

  打开 jQuery 的源文件 jquery-1.3.2.js 发现如下代码
jQuery = window.jQuery =
window.$ = function( selector, context ) {
// The jQuery object is actually
just the init constructor 'enhanced'
return new jQuery.fn.init( selector,
context );
原来 $ 与 jQuery 表明的是 jQuery 框架中同一个 function,使用 jQuery 和 $ 的效果是同样的;实际上 jQuery 框架中采用
$ 来做为 jQuery 方法的一个别名(更易于使用),因为担忧 $ 与其它 javascript 框架(好比 asp.net ajax)甚至我的代码中的 $
标识符产生冲突,也能够经过 jQuery.noConflict() 函数来移除 $ 与 jQuery 函数的关联,这样 $ 就不表明 jQuery
方法了,而是表明那个原始的 $ 对象了。
②、jQuery(expression,[context])
  这个函数接收一个包含 CSS
选择器的字符串,而后用这个字符串去匹配一组元素。
  jQuery 的核心功能都是经过这个函数实现的。
jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(一般由 CSS
选择器组成),而后根据这个表达式来查找全部匹配的元素。
  返回值:jQuery 对象
  参数

    expression:   用来查找 DOM 元素的字符串
    context:     (可选) 做为待查找的 DOM
元素集、文档或 jQuery 对象,用于限定查找范围
③、jQuery(html)
  根据 HTML 字符串,动态建立由 jQuery 对象包装的 DOM 元素。

  返回值:jQuery 对象
  参数
    html:    用于建立 DOM 元素的 HTML 字符串
 代码以下:
// 将一个 jquery.com 的超连接元素加到页面主体元素中
$("<a href=http://jquery.com/>jquery.com</a>").appendTo("body");
由上可知:jQuery 核心函数的返回值都是一个 jQuery 对象,经过对 jQuery 对象进行操做,能够完成 javascript 编程中的大部分任务;那么这个
jQuery 对象究竟是一个什么对象呢?
 
 经过 doc[0]、doc[1] 能够分别取出一个 DOM 对象,其它的则是一些 jQuery 对象特有的属性和方法;实际上 jQuery 对象包装了 DOM
对象,同时还包含了一些操做 DOM 元素的 jQuery 方法。
在使用 jQuery
的过程当中,大部分状况下第一步工做同时也是最重要的一步工做,就是取得包装了要操做 DOM 对象的 jQuery 对象;而后经过调用取得的 jQuery
对象的方法来完成对 DOM 对象的操做。
3.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中的方法了. 经过以上的方法,能够任意的相互转换jquery对象和dom对象. 最后再次强调,dom对象才能使用dom中的方法,jquery对象不能够使用dom中的方法,但 jquery对象提供了一套更加完善的工具用于操做dom,关于jquery的dom操做将在后面的文章进行详细讲解. ps: 平时用到的jquery对象都是经过$()函数制造出来的,$()函数就是一个jquery对象的制造工厂. 建议:若是获取的对象是 jquery对象,那么在变量前面加上$,这样方便容易识别出哪些是jquery对象,例如: var $variable = jquery对象; 若是获取的是dom对象,则定义以下: var variable = dom对象
相关文章
相关标签/搜索