jQuery对象与dom对象相互转换

jQuery对象与dom对象相互转换

2010-03-09 13:44:44 来源:中国站长站综合

刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象。至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换。

什么是jQuery对象?

---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。

比如:

$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法

这段代码等同于用DOM实现代码:

document.getElementById("id").innerHTML;

虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。比如:$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。

 

还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的转换。

既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。

 

在再两者转换前首先我们给一个约定:

     如果一个获取的是 jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象

     如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象

这么约定只是便于讲解与区别,实际使用中并不规定。

 

jQuery对象转成DOM对象:

两种转换方式将一个jQuery对象转换成DOM对象

[index].get(index);

(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象

如:var $v =$("#v") ; //jQuery对象

var v=$v[0]; //DOM对象

alert(v.checked) //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象

如:var $v=$("#v"); //jQuery对象

var v=$v.get(0); //DOM对象

alert(v.checked) //检测这个checkbox是否被选中

 

DOM对象转成jQuery对象:

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)

如:var v=document.getElementById("v"); //DOM对象

var $v=$(v); //jQuery对象

转换后,就可以任意使用jQuery的方法了。

通过以上方法,可以任意的相互转换jQuery对象和DOM对象。

 

需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。

 

 

jQuery对象与dom对象的转换

url: http://nrg19840409.javaeye.com/blog/319384

 

  只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的:
$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

 

 

一直以来对于通过jQuery方式获取的对象,却不能直接使用JavaScript的方法很不理解,现在知道,原来jQuery获得的对象并不和我们平时使用getElementById获得的对象一样。所以一些新手就很迷惑,为什么${”#Element”}不能直接innerHTML,这就是原因所在。

jQuery对象与DOM对象的转换

只有jQuery对象才能使用jQuery定义的方法。注意DOM对象和jQuery对象是有区别的,调用方法时要注意操作的是DOM对象还是jQuery对象。普通的DOM对象一般可以通过$()转换成jQuery对象。

   
   
  1. $(document.getElementById("msg"))
  2.  

则为jQuery对象,可以使用jQuery的方法。由于jQuery对象本身是一个集合。所以如果jQuery对象要转换为DOM对象则必须取出其中的某一项,一般可通过索引取出。

   
   
  1. $("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5] 
  2.  

这些都是DOM对象,可以使用DOM中的方法,但不能再使用jQuery的方法。以下几种写法都是正确的:

   
   
  1. $("#msg").html();   
  2. $("#msg")[0].innerHTML;   
  3. $("#msg").eq(0)[0].innerHTML;   
  4. $("#msg").get(0).innerHTML;
  5.  

jQuery DOM操作方法的简单归纳

1.每个匹配的元素中插入新元素,使用:

   
   
  1. .append()   
  2. .appendTo()   
  3. .prepend()  
  4. .prependTo()
  5.  

2.要在每个匹配的元素相邻的位置上插入新元素,使用:

   
   
  1. .after()  
  2. .insertAfter()  
  3. .before()  
  4. .insertBefore() 
  5.  

3.要在每个匹配的元素外部插入新元素,使用:

   
   
  1. .wrap() 
  2.  

4.要用新元素或文本替换每个匹配的元素,使用:

   
   
  1. .html()  
  2. .text()
  3.  

5.要移除每个匹配的元素中的元素,使用:

   
   
  1. .empty()
  2.  

6.要从文档中移除每个匹配的元素及后代元素,但不实际删除它们,使用:

   
   
  1. .remove()
  2.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值