jQuery对象与dom对象的转换

jquery对象!=DOM对象

jquery对象的相应方法DOM对象不能使用,而DOM对象的相应方法jquery也不能使用。所以在具体项目中要注意Jquery对象与DOM对象的转换问题

转换案例:

获取JQUERY对象的方法

view plaincopy to clipboardprint?
var jqueryObject = $("#test"); //jqeuryObject为一个Jquery对象,它可以使用jquery的所有方法但是不能使用 
var jqueryObject = $("#test"); //jqeuryObject为一个Jquery对象,它可以使用jquery的所有方法但是不能使用

DOM对象的方法

view plaincopy to clipboardprint?
var DOMObject = document.getElementById("test");//DOMObject为一个DOM对象,它可以使用DOM的所有方法,但是不能使用jquery的方法 
var DOMObject = document.getElementById("test");//DOMObject为一个DOM对象,它可以使用DOM的所有方法,但是不能使用jquery的方法 

jquery对象->DOM对象

view plaincopy to clipboardprint?
var jqueryObject = $("#test");//获取jquery对象  
 
var DOMObject = jqueryObject[0];//jquery对象转换为DOM对象 
var jqueryObject = $("#test");//获取jquery对象

var DOMObject = jqueryObject[0];//jquery对象转换为DOM对象
 

DOM对象->jquery对象

view plaincopy to clipboardprint?
var DOMObject = document.getElementById("test");//获取DOM对象  
 
var jqueryObject = $(DOMObject);//DOM对象转换为jquery对象 

 

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

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

如:

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

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

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

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

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

对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eqget(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。有如下两种方法:
$("div").eq(2).html();     //调用jquery对象的方法
$("div").get(2).innerHTML;   //调用dom的方法属性

posted on 2010-04-20 23:28  landray  阅读(252)  评论(0)    收藏  举报

导航