jQuery
1.基础使用
入口函数
等着页面DOM加载完毕再去执行js 代码$(document).ready(function() { ... })
或 $(function() { ... })
jQuery 的顶级对象 $
$ 是 jQuery 的别名,两者实现的功能是相同的,即:$('div').hide() == jQuery('div').hide()
jQuery对象与 DOM对象的转换
jQuery 对象与 DOM 对象是不同的,不能相互调用彼此的方法,而一些只有DOM对象才有的方法,jQuery对象要使用就必须得转换
选择器
$(“选择器”) // 里面选择器直接写CSS选择器即可,别忘了引号
筛选选择器 | 作用 |
---|---|
$("div:first") |
获取第一个div元素 |
$("div:last") |
获取最后个div元素 |
$("div::eq(index)") |
获取对应索引号元素(索引号从0开始) |
$("div:odd") |
获取所有索引号为奇数的元素 |
$("div:even") |
获取所有索引号为偶数的元素 |
筛选方法 | 作用 |
---|---|
$("li").parent() |
查找父级元素 |
$("li").children(selector) |
查找子元素中对应的选择器 (ul>li) |
$("li").find(selector) |
查找后代元素中对应的选择器 (ul li) |
$("li").siblings(selector) |
查找兄弟节点,不包括自身 |
$("li").nextAll() |
查找当前元素之后的所有同辈元素 |
$("li").prevAll() |
查找当前元素之前的所有同辈元素 |
$("li").hasClass(selector) |
查找当前元素是否指定的类,若有,则返回true |
$("li").eq(index) |
相当于:eq(index) |
补充:
$(this)
为jQuery 里的当前元素,注意,this不要加引号
隐式迭代
$("div").css("background", "pink");
// jquery对象不能使用style
$(“div”)匹配的是所有的div,隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
css样式操作
$("div").css("background-color", "pink");
一定要加引号(如果是数字可以不用加单位和引号 20px == 20)
在css中写好需要的样式,js中只调用类名,不需要点(.)
1 | // 常用方法 |
效果
隐藏切换
方法 | 解释 |
---|---|
show([speed, [easing], [fn]]) |
speed:速度,类似动画效果,可以指定确切的数值 |
hide([speed, [easing], [fn]]) |
fn:回调函数 |
toggle([speed, [easing], [fn]]) |
一般情况下,都不加参数直接显示隐藏就可以了 |
slideDown([speed, [easing], [fn]]) |
下拉 |
slideUp([speed, [easing], [fn]]) |
上拉 |
slideToggle([speed, [easing], [fn]]) |
切换 |
注:加上[]代表是可以省略
事件
hover(over, out)
就是鼠标经过和离开的组合写法,里面是两个函数,若只写一个函数则经过和离开都会触发该函数
stop()
切换时会触发动画效果,若没用限制会使多次动画出现重叠情况,该函数限制动画的出现(上一次动画)
1 | //经典运用 |
淡出
方法 | |
---|---|
fadeIn([speed, [easing], [fn]]) |
淡入 |
fadeOut([speed, [easing], [fn]]) |
淡出 |
fadeToggle([speed, [easing], [fn]]) |
切换 |
fadeTo(speed, opacity, [easing], [fn]) |
修改透明度,这里的speed、opacity(透明度),要写 |
1 | // 栗子 |
自定义动画
animate(params, [speed], [easing], [fn])
注:params: 想要修改的样式属性,以对像形式传递,必须写,属性名可以不带引号,必须使用驼峰命名法
1 | // 栗子 |
属性操作
prop 属性
element.prop(“属性名”) 获取属性值
element.prop(“属性名”, “属性值”) 设置属性值
注:自定义属性无法直接获取,要通过 attr()
,用法一致
data()
可以在指定元素上存取数据,但不会修改DOM页面元素,页面刷新则之前的数据都将移除,获取/ 设置数据的方法与prop一致
注:获取data-index h5自定义属性,不用写data- 而且返回的是数字型
内容文本值
方法 | 作用 |
---|---|
$("div").html() |
括号为空为获取元素内容,括号里面加上内容则是修改内容 |
$("div").text() |
与html() 相同,不过获取的只是文本内容 |
$("input").val() |
与html() 相同,获取/ 设置的是表单值 |
补充:
.parents()
返回所有祖先元素,可以直接指定类名获取任一祖先元素,不仅仅局限于父级
元素操作
直接看代码来的实在
1 | // 如果针对于同一类元素做不同操作,需要用到遍历元素(类似for,但是比for强大) |
2.jQuery事件
事件处理
on() | 可以绑定1个或者多个事件处理程序/ 可以实现事件委托/ 可以给未来动态创建的元素绑定事件 |
off() | 事件解绑 |
one() | 同on,但是它只能触发事件一次 |
trigger(“事件”) | 自动触发事件 |
注:事件被触发就会有事件对象产生,就有对应的方法(阻止冒泡等)
1 | // 代码看看就行了,没有注释,部分代码出现覆盖效果 |
其它
对象拷贝
$.extend([deep], target, object1, [objectN])
deep: 设置为 true 则为深拷贝,默认为 false 浅拷贝
target: 要拷贝的目标对象
object1: 待拷贝到的第一个对象
注:相同的数据覆盖,不同的加上
多库共存
$.noConflict()
栗子
1 | $(function() { |