dom对象和jquery对象有什么区别

 我来答
百度网友2571d37bb
2016-02-24 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
一、JavaScript 对象JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
对象只是带有属性和方法的特殊数据类型。
访问对象的属性:
[javascript] 
var message="Hello World!";  
var x=message.length;  
 
创建 JavaScript 对象:
[javascript] 
person=new Object();  
person.firstname="Bill";  
person.lastname="Gates";  
person.age=56;  
person.eyecolor="blue";  
 
使用对象构造器:
[javascript] view plaincopy
function person(firstname,lastname,age,eyecolor)  
{  
this.firstname=firstname;  
this.lastname=lastname;  
this.age=age;  
this.eyecolor=eyecolor;  
}  
[javascript] 
var myFather=new person("Bill","Gates",56,"blue");  
var myMother=new person("Steve","Jobs",48,"green");  
 
二、DOM对象
DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。
根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API)。
通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。
HTML DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。
DOM对象,即是我们用传统的方法(javascript)获得的对象。
 
三、jQuery对象
jquery对象其实是一个javascript的数组
这个数组对象包含125个方法和4个属性
4个属性分别是
jquery     当前的jquery框架版本号
length     指示该数组对象的元素个数
context    一般情况下都是指向HtmlDocument对象   
selector   传递进来的选择器内容  如:#yourId或.yourClass等
 
如果你通过$("#yourId")方法获取jquery对象,
并且你的页面中只有一个id为yourId的元素
那么$("#yourId")[0]就是HtmlElement元素
与document.getElementById("yourId")获取的元素是一样的
 
简单理解,就是jQuery创建的对象
jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法
 
四、DOM对象和jquery对象的区别
[javascript] 
var domObj = document.getElementById("id"); //DOM对象  
var $obj = $("#id"); //jQuery对象;  
[javascript]  
$(“#img”).attr(“src”,”test.jpg”); //这里的$(“#img”)就是获取jQuery对象;  
[javascript]  
document.getElementById(“img”).src=”test.jpg”;//这里的document.getElementById(“img”)就是DOM对象;  
再说一个例子:就是this,我在写jQuery的时候经常这样写:
this.attr(“src”,”test.jpg”);
可是就是出错。其实this是DOM对象,而
.attr(“src”,”test.jpg”)
是jQuery方法,所以出错了。要解决这个问题就要将DOM对象转换成jQuery对象,例如:
$(this).attr(“src”,”test.jpg”);
 
五、DOM对象和jquery对象的转换
DOM对象转成jQuery对象:
对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。
方法:$(DOM对象)
[javascript] 
var v=document.getElementById(“v”);  //DOM对象  
var $v=$(v);    //jQuery对象  
 
jQuery对象转成DOM对象:
两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);
(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。
[javascript]  
var $v =$(“#v”) ; //jQuery对象  
var v=$v[0];    //DOM对象  
alert(v.checked)   //检测这个checkbox是否被选中  
 
(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象。
[javascript] 
var $v=$(“#v”);  //jQuery对象  
var v=$v.get(0);   //DOM对象  
alert(v.checked)  //检测这个checkbox是否被选中
杜爷1号
2015-07-19 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
  jquery对象和DOM对象在使用过程很频繁,正是因为如此,好多朋友都不知道它们之间有什么区别,下面为大家详细介绍下,希望对大家有所帮助:
  第一步,http://www.k99k.com/jQuery_getting_started.html
第二步,新手先仔细得全部看一遍jQuery的选择器,很重要!!!
http://shawphy.com/jqueryapi/ 这里是最新文档,有离线版下载)
第三步,深刻了解jQuery对象和普通DOM对象的区别。互相转化见Q1
Q1,js的写法:document.getElementById('save').disabled=true;
在jquery中我是这样写的$("#save").disabled = true; 为什么没效果呢

A,这个是典型的问题,其实因为$("#save")出来的其实是jQuery对象,而不是普通DOM对象
这是新手常见的问题。
解决方法有2:
1,用JQ写法,$("#save").attr("disabled","true");
2,转成DOM写法$("#save")[0].disabled=true;
当然,$("#save")[0]也可以写成$("#save").get(0)。他返回的也是DOM元素

$("#save").eq(0)得到的还是jq对象
$(dom对象)就能得到一个jq对象。

Q2,获取选中的checkbox
A:
获取所有选中的checkbox:
$("input:checkbox:checked")
判断是否一组checkbox都选中了:
if($("input:checkbox:checked").length){}
判断某一个checkbox是否被选中
if($("input:checkbox").is(":checked")){}

Q3,我的id里有[]或.之类的符号,怎么办?或者带有命名空间的xml标签带有:怎么办?
A:用\\来转义如<div id="id[1]"></div>
$("#id\\[1\\]")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灿烂的小贝壳
2015-07-19 · TA获得超过1986个赞
知道大有可为答主
回答量:2437
采纳率:100%
帮助的人:4175万
展开全部
代码如下:
var$cr=$("#cr"); //jquery对象
var cr = $cr[0]; //dom对象 也可写成 var cr=$cr.get(0);
alert(cr.checked); //检测这个checkbox是否给选中
dom对象转换成jquery对象
对于一个dom对象,只需要用$()把dom对象包装起来,就可以获得一个jquery对象了,方法为$(dom对象);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式