JS对象与Dom对象与jQuery对象之间的区别

通过问题看本质:
举例:
js的写法:document.getElementById(‘save‘).disabled=true;
在jquery中我是这样写的

$("#save").disabled = true;  //没有效果

分析:
其实因为$("#save")出来的其实是jQuery对象,而不是普通DOM对象
解决方法:
1)用JQ写法

$("#save").attr("disabled","true");  

2)转成DOM写法

$("#save")[0].disabled=true;
//当然,$("#save")[0]也可以写成$("#save").get(0)。他返回的也是DOM元素。
$("#save").eq(0)//得到的还是jq对象,$(dom对象)就能得到一个jq对象。

一、Dom对象、JavaScript对象、jQuery对象

1.1 Dom对象

文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口。

  • DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、
    这些对象的行为和属性以及这些对象之间的关系。
  • 通过DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的
    内容进行修改和删除,同时也可以创建新的元素。
  • DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和
    VBScript 使用。
  • DOM对象,即是我们用传统的方法(javascript)获得的对象。
  • DOM准确说是对文档对象的一种规范标准(文档对象模型),标准只定义了属性和方法行为。

1.2 JavaScript对象

  • JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
  • 对象只是带有属性和方法的特殊数据类型。
  • 通过js获取的DOM对象就是js对象
  • 当浏览器支持js的dom接口(api)时,这里狭义的dom对象是以js对象的形式出现的,
    也就是一个js对象。

1.3 jQuery对象

1)概述
jQuery对象其实是一个JavaScript的数组,这个数组对象包含125个方法和4个属性
4个属性分别是:

  • jquery 当前的jquery框架版本号
  • length 指示该数组对象的元素个数 .
  • context 一般情况下都是指向HtmlDocument对象 .
  • selector 传递进来的选择器内容

jquery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,
其可以使用jQuery里的方法,但是不能使用DOM的方法;反过来Dom对象也不能使用
jquery的方法。
2)jQuery对象和js对象区别

  • jQuery对象属于js的数组
  • jQuery对象是通过jQuery包装的DOM对象后产生的
  • jQuery对象不能使用DOM对象的方法和属性
  • DOM对象不能使用jQuery对象的方法和属性

3)jQuery对象和js对象之间的相互转换

  • js转jQuery对象
    $(js对象)
  • jQuery对象转js对象

    var doc2=$("#idDoc2")[0];   //转换jQuery对象为DOM对象
    doc2.innerHTML="这是jQuery的第一个DOM对象"
      //使用jQuery对象本身提供的get函数来返回指定集合位置的DOM对象
    var doc2=$("#idDoc2").get(0);
    doc2.innerHTML="这是jQuery的第二个DOM对象"  

二、细说jQuery对象和DOM对象的区别与使用

2.1 jQuery对象和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特有的方法

等同于js中:

document.getElementById("foo").innerHTML;

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

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

可以用

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

同样,DOM对象也不能使用jQuery方法。学习jQuery开始就应当树立正确的观念,
分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。

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

2.2.1 jquery对象转换成dom对象

jquery提供了两种方法将一个jquery对象转换成一个dom对象,即[index]和get(index)。
可能有人会觉得奇怪,怎么是用下标呢,没错,jquery对象就是一个数组对象。
举例:

var $cr=$("#cr"); //jquery对象
var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0);
alert(cr.checked); //检测这个checkbox是否给选中

2.2.2 dom对象转换成jquery对象

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

var cr=document.getElementById("cr"); //dom对象
var $cr = $(cr); //转换成jquery对象

转换后可以任意使用jquery中的方法了。

三、总结一下

dom对象才能使用dom中的方法,jquery对象不可以使用dom中的方法,但 jquery对象提供
了一套更加完善的工具用于操作dom。

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

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

var $variable = jquery对象;

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

var variable = dom对象

原文地址:https://www.cnblogs.com/tkzc2013/p/10985130.html

时间: 2024-08-05 08:21:03

JS对象与Dom对象与jQuery对象之间的区别的相关文章

[ jquery 过滤器 is(expr | jqObj | ele | function) ] 此方法用于在选择器的基础之上根据选择器、DOM元素或 jQuery 对象来检测匹配元素集合,如果有,则返回true

根据选择器.DOM元素或 jQuery 对象来检测匹配元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true. 如果没有元素符合,或者表达式无效,都返回'false'. '''注意:'''在jQuery 1.3中才对所有表达式提供了支持.在先前版本中,如果提供了复杂的表达式,比如层级选择器(比如 + , ~ 和 > ),始终会返回true 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title&

dom转换成jquery对象

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type"

DOM对象和js对象以及jQuery对象的区别

一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系. 通过DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性.可以对其中的内容进行修改和删除,同时也可以创建新的元素. HTML DOM 独立于平台和编程语言.它可被任何编程语言诸如 Java.JavaScript 和 VBScript 使用. DOM对象,即是我们用

03 DOM对象(js对象)与jQuery对象

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <ul> <li id="cloth">衣服</li> <li>裤子</li> <li>袜子&

JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案

JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个JS库的冲突解决方案 JQuery的版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery的版本</title> <

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

在讨论jquery对象和DOM对象的相互转换之前,先约定好定义变量的风格如果获取的是jquery对象,那么在变量前面加上$,例如 var $varible = jquery对象: 如果获取的是DOM对象,则定义如下: var varible = DOM对象: 1.jquery对象转成DOM对象: jquery对象不能使用DOM中的方法,但如果对jquery对象所提供的方法不熟悉,或者没有jquery想封装的方法,不得不使用DOM对象,即[index]和get[index]. (1)jquery对

Jquery Jquery对象和DOM对象的微妙联系

声明变量 var  $variable=             Jquery 对象: var  varibake=             DOM对象: var $cr= $("#id");        Jquery 对象: var cr=  $cr.get(0)       DOM对象:$cr.get(0)此处与 $cr[0] 等同 var cr=document.getElementById("cr");  DOM对象 var $cr=$(cr);    

把DOM对象转换为jQuery对象

    DOM对象转换为jQuery对象的简单实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta 

jquery对象和javascript的dom对象转换

Jquery框架为jquery对象定义了独立使用的方法和属性,它无法直接调用dom对象的方法,dom对象也无法直接调用jquery对象的方法和属性. Jquery对象和dom对象是可以相互转换的,因为他们所操作的对象都是dom元素,只不过jquery对象包含了多个dom元素,而dom对象本身就是一个dom元素,简单地说,jquery对象是dom元素的数组,称为类数组,而dom对象就是单个的dom元素. 1.把jquery对象转换成dom对象 (1)借助数组下标来读取jquery对象集合中的某个d

DOM对象和JQuery对象进行转换

var btn=document.getElementById("btn"); $(btn).click(function(){}); DOM对象转换为JQuery对象: 用$符号将DOM对象包一下就变为JQuery对象.只不过在JS中叫绑定事件,在JQuery中叫执行事件. JQuery对象转换为DOM对象: 数组方式: get方式:本质也是数组形式