jQuery对象和DOM对象都是获取到的页面节点对象,为什么还需要相互转化呢?
原因是在 jQuery 对象中无法使用 DOM 对象的任何方法,如 $("p").innerHtml 是错误的,因为它的写法是 $("p").html()。同样,DOM对象中也不能用 jQuery 对象中的方法,如 document.getElementsByTagName("p").html() 是错误的。
1、jQuery 对象转化为 DOM 对象
jQuery对象如果想要用 DOM 对象中的方法,就需要转化为 DOM 对象。jQuery对象转化为 DOM 对象有两种方式,代码如下:
var $test = $("test"); var test = $test[0]; // jQuery对象是一个数组,可以通过索引得到 DOM 对象
或者:
// 用jQuery提供的get(index) 方法得到 DOM 对象 var test = $test.get(0)‘
2、DOM 对象转化为 jQuery 对象
同理,DOM 对象如果想要用 jQuery 对象中的方法,DOM 对象就需要转化为 jQuery 对象。DOM 对象转化为 jQuery 对象代码如下:
var test = document.getElementById("p"); var $test = $(test); // 用jQuery 的工厂方法