jQuery的原理
jq最核心的是 $ ,它是一个函数。
函数中返回一个自定义的jq对象,它是一个类。
在这个类的原型下面有许多jq自定义的方法,如on,css。。。
每次调用 $ 都会返回一个新的jq对象,
同时在 $ 函数中,根据传入参数的类型,如(#div1, .div2, span等),函数或者字符串,
把选中的元素存在数组中,遍历这个数组,去除每个元素进行dom操作。
jQuery可以链式操作,是因为,在每一个方法中,都会在最后 return this
返回了当前 $函数中的jq对象,所以就能继续链式操作了。
举例(伪代码):
function $(selector,context){
return new Jquery(selector,context);
};
function Jquery(selector,context){
this.element = [];//用来保存传进来的参数
if(typeof selector =="string"){
//说明传进来的是 #div1 .box span 等
if(selector.charAt(0)=="#")
if(selector.charAt(0)==".")
//截取字符串,获取dom对象,保存在数组中
}
if(typeof selector =="function"){
//说明传进来的是文档就绪函数
addEvent(document,"DOMContentLoaded",selector,false)
}
}
jQuery对象、js对象相互转换
1)jq->js
$("#div1")[0]
$("#div1").get(0)
2)js->jq
$(this)