jQuery对象和DOM对象的互换

Dom 对象:指的是普通的 JavaScript 对象javascript

jQuery对象:是包装 Dom 对象后产生的对象。java

一:JQuery 对象和 Dom 对象jquery

在使用 JQuery 过程当中,咱们通常(也是绝大多数状况下,除非咱们使用了第二个框架)只有两类对象,即:JQuery 对象和 Dom 对象。Dom 对象指的是普通的 JavaScript 对象,而 JQuery 对象则是包装 Dom 对象后产生的对象。在声明变量的时候,出于规范,咱们通常在变量名字前加一个 $ 号以标记它是一个 JQuery 对象,以下:数组

var $var = … // JQuery 对象框架

var var = …   // dom 对象dom

可是,后者也能够用来声明 JQuery 对象。函数

特色:this

1:只有 JQuery 对象才能使用 JQuery 方法;atom

2:Dom 对象则使用原生的 JavaScirpt 方法;spa

如何判断一个对象是 JQuery 对象?以下:

1:JQuery 对象是一个数组对象;

2:它具有 JQuery 对象的属性和方法;

 

1.1 JQuery 对象转换成 Dom 对象

上面咱们说到:JQuery 对象是一个数组对象。那么,实际,获得 [index] 或者使用 get(index) 方法,就能获得其 Dom 对象。如:

var $me= …;

var me1=$me[0];

var me2=$me.get(0);   // me1 == me2

 

1.2 Dom 对象转换成 JQuery 对象

简单了,只要使用 JQuery() 方法就能转换,即:

var domTemp=…;

var $me1 = JQuery(domTemp);

var me2=(domTemp);   // me1==me2

 

二:JQuery 中的事件

在 JQuery 中,能够使用 bind 方法来为元素绑定事件,该方法的声明以下:

bind( type [, data], fn)

第一个参数:事件类型,如 click,blue;

第二个参数:成为 event.data 属性值,在事件处理器方法中,做为参数传递进来;

第三个参数:事件处理器方法;

<div id="m">abc</div> 
<script src="scripts/jquery.min.js"></script> 
<script language="javascript"> 
    $("#m").bind("click", "theValue", function(e){ 
        alert(e.data); 
    }); 
</script>

上面的代码,是一个完整的例子,在这个例子中,咱们能够看到 e.data 的值就是 theValue。

2.1 事件对象

在上文中,咱们看到 bind 方法的第三个参数事件处理器的参数 e,它俗称 事件对象,即 event.data 中的 event。虽然听上去很高端,但其实跟普通的方法参数没有任何区别。事件对象有一些重要的属性,这里主要强调下其 target 属性就是引起当前事件的 Dom 对象,即 e.target 就是 this(见下文 this 的函数),以下:

image

 

2.2 JQuery 和 Dom 对象的互转实例

在上面的这个例子中,咱们再拓展一下,来看看 JQuery 对象和 Dom 对象之间的互转:

("#m").bind("click", "theValue", function(e){          var me = this;           var("#m").bind("click", "theValue", function(e){          var me = this;           varme1 = 使(this);//也能够使用varme2 = (me);vardomMe1=me1[0];    // 也能够使用 var domMe2 = $me1.get(0); 
    alert(e.data); 
});

首先,this 是什么,它永远指的携带当前事件的那个 Dom 对象,因而,上文中的两个转换就能够看到效果了,如图:

image

观察其属性,上面是一个典型的 Dom 对象。

再看 $me1:

image

能够看到,这是一个典型的 JQuery  对象。

上文中,咱们也说了,JQuery 对象是一个数组对象,而把它转为 Dom 对象,只须要使用 me1[0]或者me1.get(0) 就能够了,以下:

image

或者:

image

 

2.2 自定义事件

以下能够注册一个自定义事件:

$("#m").bind(“myclick”, function(){

  

});

出发它,则使用:

$("#m").trigger(“myclick”);

 

结尾说一个以前没注意的地方:onload 事件不能同时指定两个事件处理器,可是 ready 事件是能够的。

相关文章
相关标签/搜索