提升业务编程能力javascript
JQ中提供了不少的方法(基本都兼容),咱们可使用这些方法快速开发项目css
JQ中有的方法提供的思想可让咱们把项目实现得更优化html
提升JS基础以及一些高级编程思想java
分析JQ源码,学习里面类库封装的思想和一些方法实现的原理node
有时间把JQ中提供的经常使用方法都去实现一遍,提升本身的编程能力jquery
jquery-1.xxx: 专门为PC端诞生的类库,兼容全部的浏览器ajax
jquery-2.xxx: 当初是为了移动端而准备的,因此IE低版本浏览器通常不兼容,可是这个版本针对移动端的事件等操做也不是特别完善,被Zepto这个类库取代了spring
jQuery充分利用了JS中函数的三种特性:普通函数、类、普通对象;jQuery就是这个类,在外面使用的$和jQuery是一个东西,jQuery中提供的方法分为两部分:写在原型上的方法和写在jQuery私有属性上的方法;建立jQuery实例的时候,会返回一个类数组(它也是jQuery实例),这个类数组是jQuery本身去建立的,里面有一些本身特定的属性编程
//jQuery核心原理 (function(){ var version="1.11.3", jQuery=function(selector,context){ return jQuery.fn.innt(selector,context); }; jQuery.fn=jQuery.prototype={ //... init:function(selector,context){ } }; jQuery.ajax=function(){}; window.jQuery=window.$=jQuery; })();
jQuery对象和JS对象相互转换数组
//jQuery对象转换成JS对象 var $obj=$("*"); $obj[0]; //-->JS对象 $obj.get(0); //-->JS对象 $obj.eq(0) //-->这个获取的是jQuery对象 //JS对象转换成jQuery对象 var obj=document.getElementsByTagName("*"); $(obj); //-->jQuery对象
extend
在jQuery对象上和jQuery实例上都有这个方法,而且都是同一个方法,可是这两个方法执行时其this指向不同,也就是说extend所扩展的方法所在的扩展位置不同
$.extend({ aa:function(){} }); $.aa(); //->aa扩展到jQuery的属性上了:完善类库,提供一些经常使用的操做方法,例如,数组去重... $.fn.extend({ bb:function(){} }); $([select]).bb(); //-->bb扩展到jQuery的原型上了:扩展插件,例如,选项卡、轮播图、登陆、验证...
1)选择器
CSS选择器有哪些,jQuery选择器基本上就有哪些:#ID、.class、tagName、*、selector,selector、parent offspring、parent>child、:first、:last、:not、:contain、:eq、:gt、:lt、:text...
2)核心方法
$([selector|node|function],[context])
$([html])
each(callback)
get()
index()
length
context
selector
noConflict()
extend()
3)属性方法
attr():设置或获取自定义属性值,获取的值是字符串类型的
removeAttr()
prop():操做的是元素的内置属性
addClass()
removeClass()
hasClass()
toggleClass()
html():获取或设置元素的innerHTML
text():获取或设置元素的innerText
val():获取或设置元素的value值
4)CSS方法
css()
offset():当前元素距离body的偏移:{top:xxx,left:xxx}
position():当前元素距离父级已定位参照物的偏移
scrollTop() / scrollLeft():获取或者设置滚动值
height() / width():设置或获取元素的宽高
innerWidth() / innerHeight():获取元素的clientHeight/clientWidth
outerWidth() / outerHeight():获取元素的offsetHeight/offsetWidth
5)DOM操做方法
append()
appendTo()
prepend()
prependTo()
insertBefore() / insertAfter()
clone()
remove()
6)筛选方法
eq()
filter():同级筛选
children():子级筛选
find():后代筛选
first() / last()
not()
slice()
next() / prev()
nextAll() / prevAll()
sibings()
add()
contents()
7)动画方法
animate()
stop()
finish()
show() / hide() / toggle()
fadeIn() / fadeOut() / fadeToggle()
sliceDown() / sliceUp() / scliceToggle()
delay()
8)事件方法
on() / off():解决jQuery事件的一切需求,其它方法也是从这个方法里扩展的
bind() / unbind() / trigger()
one()
live() / delegate()
click()/hover()/mouseover()...
9)工具方法
callbacks()
makeArray()
toArray()
parseJSON()
parseXML()
type()
isFunction()
trim()
param()
//只要当前页面的HTML结构加载完成,就会执行回调函数,并且在一个页面中能够执行屡次 $(document).ready(function(){ //<javascript code> }); $(function(){}); //这种方式和上面的方式同样,没有区别