jQuery对象和DOM对象相互转换示例[转]



jQuery对象是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法,例如: $("#img").attr("src","test.jpg"); 这里的 $("#img")就是jQuery对象。

DOM对象是Javascript固有的一些对象。DOM对象能使用Javascript固有的方法,但是不能使用jQuery的方法。例如:document.getElementById("img").src = “test.jpg";这里的document.getElementById("img") 就是DOM对象。

$("#img").attr("src","test.jpg") 和 document.getElementById("img").src = "test.jpg" 是等价的,是正确的,但是 $("#img").src = "test.jpg" 或者 document.getElementById("img").attr("src","test.jpg") 都是错误的。

再说一个例子,就是this, 在写jQuery时经常这样写: this.attr("src","test.jpg")可是就是出错,其实this是DOM对象,而.attr("src","test.jpg") 是jQuery方法,所以出错了。要解决这个问题就要将DOM对象转换成jQuery对象,例如$(this).attr("src","test.jpg")。

DOM对象转成jQuery对象

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

var v = document.getElementById("v"); //DOM对象
var $v = $(v); //jQuery对象

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

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对象 ( $v.get()[0] 也可以 )
alert(v.checked); //检测这个 checkbox 是否被选中


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

评论: 0 | 引用: 0 | 查看次数: 202
发表评论
登录后再发表评论!