JQuery学习笔记
jQuery是啥呢?
它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
jQuery的用法:
选择元素:
- $(); 里面和CSS一样,不过对选择出的一组元素,一起处理,省略循环,这里是js不允许的。
- 里面可以写CSS选择器原生dmo,jQuery对象、 null /undefind / function(){} selector/content等
- jQuery特有的选择规则,选出来是jquery对象
- filter可以用来筛选,例如说筛选类名。not的话可以用来反向选择,没有这一项的就被选中,is则相反。has说明里面有这一项的选项被选中。find跟has的区别是,找到这里有这一项的然后选中。
- jQuery可以进行链式操作。
- sizzle是用来选择特殊写法的,是查到dom最快的方式。
函数写法:
- 都是函数式的写法。
- CSS取值相当于getComputed,赋值相当于,就写width,然后啥也不写
1
dom.style.***
- css赋值一组,取值取一个()
- xxx.setAttribute(‘son’,’’Feng) 这样就可以给对象添加属性了。
- attr() 用于设置或返回被选中元素的属性值
- prop() 如果是检索html元素则使用attr()替代。
- next()下一个兄弟节点。
- prev()上一个兄弟节点
- index 当前兄弟节点
- addClass removeClass
- toggleClass 删除或者添加类名 没有的话帮你添加,有话帮你删除
- insertBefore 插入到谁谁的前面。
- appendTo() –这个比较常用
1
2A添加到B的里面(添加到最后一个子元素后) $('p').appendTo($('ul')
D.append(C) D里加上C - remove detach 可以删除元素并且可以return 删除的元素。remove的话点击删除之后也删除了方法,因此第二次点击不能再删除了,而detach则可以。不断的进行删除和添加
- on方法绑定时间
1 | .on('click' ,'a', function(){}) //off可以解除绑定 $('.item').off('click'), 如果想指定解绑的元素,那就要传值以更精准 |
- one() 只绑定之间一次
scrollTop() 滚出去的高度 - 动态生成标签经常用于动态添加图片或者选项框
1
$('<div></div>')
关于事件:
时间对象 e->e.pageX 相对文档而言,e.clinetX 相对于浏览窗口而言。 e.which 哪个键或按钮 e.button哪个鼠标按键被按
e.preventDefalut() s.stopPrpagation() return false; 这些都是用来解绑事件的
offset().left/top position().left/top。
- offset()方法返回或设置匹配元素相对于文档的偏移(位置)。
parent() 返回父节点
offsetParent() 返回离它最近有定位的父级
paerents() 返回多个父级
closet() 查找最近的祖先节点
val是jQuery里面代表.value的参数
each 遍历
1
$('li')each(function (index , ele ){} )
end() 回退操作,可以使jQuery 可以连续实现点操作。就说可以用一行代码搞定。
slblings() 当前元素节点的所有兄弟节点
1.1
$('li.third-item').siblings().css('background-color', 'red');
prevAll() 当前元素上面的所有兄弟节点
nextAll() 当前元素下面的所有兄弟节点
prevUntil() nextUntil() 掐头去尾选中元素,传jQuery 对象dom
clone 克隆节点,参数为true的时候,事件也能克隆
wrap 包裹的意思 wrapall 包裹选中所有的元素 会破坏结构 unwrap 接触包装,接过话标签不能删除。
A.add(B) 选中元素A和B集中操作。
slice(0,2) 截取,算头不算尾
serialize 串联表单数据 serializeArray 串联数据成数组
animate()
- 参数target
- 参数durition
- 参数代表速度变化方式
- 回调函数
stop(true, true) 停止当前所有的运动,停在当前目标带点 ,后面的参数决定是否立即到达目标点上
- 是否停止后续所有运动 false:不停止,继续运动 true :停止后续所有运动
- 是否立即到达当前目标点 flase :不到达 true:到达
22.stop(flase ,true) 跳过当前运动并到达目标点,执行后续运动
finish() 停止当前运动
delay ()延迟,参数,延迟运动
1
jquery.easing.js 是专门用来做jQuery 运动的.
slideToggle(speed ,callback) 通过滑动效果来切换元素的可见状态
sildeUp sildedown 隐藏起来元素/显示元素——根据之前的不同状态进行切换- none–block or block–none
toggleClass(active) 对设置或移除备选元素的一个或多个类进行切换
fade in/out 淡入淡出
tigger 方法触发被选元素的指定事件类型。
==tigger出发事件是会冒泡,触发里面会影响外面 tigger可以触发自定义事件==
工具方法:
1 | 以$.xxx jQuery.xxx这种方式调用 ,此类方法定位在jQuery 函数上面 |
$.type() 判断 参数的数据类型
原生js判断类型的三种方法:
1 | 1. arr.instanceof Aarray |
1,2两种有局限性,3 比较通用
trim()方法
1 | $.trim 消除空格 |
$proxy() 改变this指针方向 参数1:function , 参数2:函数执行期上下文。
$noConflict() 防止冲突 在很多javascript库使用$作为一个函数或变量名,正如我们同时需要使用jQuery和其他库一样,我们可以使用$.noConfilct把$控制权交给其他库。
$.parseJSON() 字符转换成json ,要求非常严格,外部是单引号,内部属性是双引号,不需要回车符
$.makeArray 把类数组转换成数组。
jQuery高级方法:
$.extend() 插件扩展1 提供最新的jQuery 工具方法
$.fn.extend() 插件扩展2 提供最新的jQuery 实例方法,是实例不是工具方法
1 | 编写方法1, $.extend({keftTrim :function (){}}) |
1 | 2.fn.extend({drag : function()}) |
1 | 3. var cd = $.Callback() 回调函数--》返回回调对象 |
1 | 4. once 只执行一次fire() 方法 放在回调函数的参数里面。 |
1 | var cd = $.Callbacks('once'); |
memory记忆 前面触发函数,后面添加也会被添加并触发 unique也是只执行一遍
$.Deferred() 延迟对象相当于有状态的Callbacks();
添加函数;
1 | done fail progress |
触发函数:
resolve reject notify
$.deferred.promise() —->不能触发函数(无状态)
$(when) —->返回的是延迟对象,参数也是延迟对象。当参数延迟对象全部触发done的时候最后会触发when返回延迟对象的done函数。
- 延迟对象作用控制的关键点,做链式运动的效果
- $.ajax这种有状态的异步操作核心是deferred
- when当发生多个ajax请求的时候,因为都是异步的,所以可以用多个deferred ,每当ajax 成功后我们触发一个,最后全部成功在when后一并处理。
$() 里面可以填什么
1 | $(false /null /undefined) |
//在JQuery中,init()函数里面会判断返回的类型,如果是DOM则是因为后面有.nodeType
$(function () {})
$($())
jQuery .extend() 拓展工具方法
$().extend() 拓展实例方法
extend:
拓展
合并(传两个参数 ,合并到第一个对象里面去)
原始值的话并不会变化,而改个引用值就ok。
extends的四种写法:
1 | $.extend(obj1) |
其实就是要关注target是什么,i是什么(从第几位开始传),如果前面有true就往后挪一位.