jQuery核心
记录jQuery 的核心知识。
jQuery框架结构代码
1 | //1.函数自调用,防止内部变量泄露,污染全局中的其他变量,将window作为实参传入,方便代码压缩 |
jquery框架设计结构图
jQuery中的extend方法
jq中的extend的方法来给工厂函数jQuery以及jQuery的原型对象扩展方法(给jq实例扩展方法)。
实现原理:
1 |
|
jQuery插件的扩展原理型
1 | //原理:给 $ 或 jQuery函数的原型对象添加属性和方法。 |
jQuery对象
jQuery对象是一个伪数组,通过$(selector)获取到的对象是JQuery对象,这个对象里存储了length个dom对象。
###jQuery对象和dom对象
通过Jquery获取页面元素得到的对象就是jquery对象。而dom对象是通过js获取页面元素得到的对象。
jQuery对象是一个对象,它是一个包装集, 包装了很多 dom 对象的集合。
jQuery对象不能直接调用dom对象的方法,我们可以通过两种方法获取到jQuery对象包装集里的dom对象,来调用dom对象的方法。
方法1:通过下标的方式
1 | var lis = ("li"); |
方法2:利用get()方法
1 | var lis = ("li"); |
dom对象转jq对象方法:
将dom对象丢进$() 中。
dom对象不能直接调用jQuery对象的方法,我们可以将dom对象转换成jQuery对象再使用。
例:
1 | var cloth = document.getElementById("cloth"); |
###jQuery对象中的实例成员和静态成员
1.静态成员
绑定在构造函数上的属性和方法,供构造函数自己使用。此时的构造函数作为对象来理解。
2.实例成员
设置在构造函数体中的属性和方法以及构造函数原型上的属性和方法,供构造函数创建的实例对象使用。
例:
1 | function Person(){ |
###jQuery实例对象的方法
方法 | 说明 |
---|---|
index() | 作用:求元素的索引值 语法:index(obj) 参数:obj : dom对象 1. 不传参数:表示返回该元素在兄弟元素中的索引值 2. 传参数:表示返回在dom对象这个集合中对应的索引值 |
each() | 作用:以每一个匹配的元素作为上下文来执行一个函数。即遍历操作dom元素。 意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数(从零开始的整型)。 返回 ‘false’ 将停止循环 (就像在普通的循环中使用 ‘break’)。返回 ‘true’ 跳至下一个循环(就像在普通的循环中使用’continue’)。 语法:each(function(index, ele){…}) 注:实例方法each() 实际上用的就是jq的静态成员方法each() 源码如下: each : function(callback){ return jQuery.each(this, callback);} 终止循环遍历使用 return false |
size() | 返回jQuery对象中元素的个数 |
get() | 这能够让你选择一个实际的DOM 元素并且对他直接操作,而不是通过 jQuery 函数。$(this).get(0)与$(this)[0]等价。 语法:$(selector).get(index) 参数:index 索引值 返回值:返回jq对象(伪数组)中索引为index的dom对象不传参时返回的由dom对象组成的伪数组 |
###jQuery对象的属性
属性 | 说明 |
---|---|
length | jQuery 对象(伪数组)中元素的个数。 |
###jQuery对象中的静态成员方法
绑定在工厂函数jQuery上的方法。
方法 | 说明 |
---|---|
each() | 作用:遍历对象 语法:$.each(obj, function(index, element){}) 参数:obj 要遍历的对象(数组,对象,伪数组) index 索引值 element 元素的值 返回值:遍历的对象obj 注:1.执行时,回调函数中的this 指向遍历的每一个值(element) 2.如果想中断遍历,在回调函数中return false 即可 3.each返回遍历的对象,即会将obj 又返回 |
###静态成员方法each()的封装
1 | function each(obj, callback){ |