目录
定义:jQuery是一个快速、简洁的JavaScript库
官网:jQuery
各个版本下载:jQuery CDN
jQuery API 中文文档 | jQuery API 中文在线手册 | jquery api 下载 | jquery api chm
首先,第一步:先引入jQuery.js文件
jQuery语法中,一般用双引号
(1)页面DOM加载完成 (相当于原生js中的 DOMContentLoaded)
$(function(){
});
(2)页面DOM加载完成
$(document).ready(function(){
});
$ 是 jQuery 的别称,在代码中可以使用 $ 代替jQuery
jQuery对象:用jQuery方法获取过来的对象就是jQuery对象
DOM对象:用原生js获取过来的对象,就是DOM对象
jQuery对象本质:通过$ 把DOM元素进行了包装(伪数组形式存储)
(1)DOM对象 转换为 jQuery对象
$("div");
(2)jQuery对象 转换为 DOM对象
// (1)
$("div")[index] // index 是索引号
//(2)
$("div").get(index)
名称 | 用法 | 说明 |
ID选择器 | $("#id") | 获取指定ID的元素 |
全选选择器 | $('*') | 匹配所有元素 |
类选择器 | $(".class") | 获取同一类class的元素 |
标签选择器 | $("div") | 获取同一类标签的所有元素 |
并集选择器 | $("div,p,li") | 选取多个元素 |
交集选择器 | $("li.current") | 交集元素 |
名称 | 用法 | 描述 |
子代选择器 | $("ul>li") | > 获取亲儿子层级的元素 |
后代选择器 | $("ul li") | 空格 获取儿子 孙子等 |
语法 | 用法 | 说明 |
: first | $("li:first") | 获取第一个 li 元素 |
: last | $("li:last") | 获取最后一个 li 元素 |
: eq(index) | $("li:eq(2)") | 选择索引号为2的元素,索引号index从0开始 |
: odd | $("li:odd") | 选择索引号为奇数的元素 |
: even | $("li:even") | 选择索引号为偶数的元素 |
语法 | 用法 | 说明 |
parent() | $("li").parent() | 查找父级 |
children(selector) | $("ul").children("li") | 相当于$("ul>li"),最近一级(亲儿子) |
find(selector) | $("ul").find("li") | 相当于$("ul li"),后代选择器 |
siblings(selector) | $(".first").siblings("li") | 查找兄弟节点,不包括自己本身 |
nextAll([expr]) | $(".first").nextAll() | 查找当前元素之后,所有的同辈元素 |
prevAll([expr]) | $(".last").prevAll() | 查找当前元素之前,所有的同辈元素 |
hasClass(class) | $('div').hasClass("protected") | 检查当前的元素是否含有某个特定的类,如果有,返回true,否则返回 false |
eq(index) | $("li").eq(2); | 相当于$("li:eq(2)") ,index从0开始 |
定义:遍历内部DOM元素(伪数组形式存储)的过程,叫做隐式迭代
隐式迭代:对同一类元素做同样的操作
简单理解:给匹配到的所有元素进行隐式循环遍历,执行相应的方法,而不用我们再进行循环
定义:当前元素设置样式,其余兄弟元素清除样式
<script>
$(function () {
// 1. 隐式迭代 给所有的按钮都绑定了点击事件
$("button").click(function () {
// 2. 当前元素变化背景颜色
$(this).css("background", "pink");
// 3. 其余兄弟去掉背景颜色 隐式迭代
$(this).siblings("button").css("background", '');
})
})
</script>
使用链式编程 一定注意:是哪个对象执行样式
<script>
// 使用链式编程 一定注意:是哪个对象执行样式
$(function () {
// 1. 隐式迭代 给所有的按钮都绑定了点击事件
$("button").click(function () {
// 2. 让当前元素颜色变为色
$(this).css("background", "pink");
// 3. 其余兄弟姐妹 不变色
$(this).siblings("button").css("background", '');
// 4. 链式编程写法 (我变色 我兄弟姐妹不变色)
$(this).css("background", "pink").siblings().css("background", '')
})
})
</script>
jQuery 可以使用css方法来修改简单元素样式;也可以操作类,修改多个样式
(1)参数只写属性名,则返回属性值
$(this).css("width");
(2)参数是属性名,属性值,逗号分割,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
$(this).css("color","red");
(3)参数可以是对象形式,可设置多组样式,属性名和属性值用冒号隔开,属性可以不用加引号
$(this).css({
width: 500,
height: 500,
backgroundColor: "skyblue"
})
作用等同于以前的clssList,可以操作类样式,注意操作类里边的参数不加点
语法 | 说明 |
$("div").addClass("current") | 添加类 |
$("div").removeClass("current") | 移除类 |
$("div").toggleClass("current") | 切换类 |
语法 | 说明 |
show([speed,[easing],[fn]]) | 显示 |
hide([speed,[easing],[fn]]) | 隐藏 |
toggle([speed,[easing],[fn]]) | 切换 |
语法 | 说明 |
slideDown([speed,[easing],[fn]]) | 向下滑动元素 |
slideUp([speed,[easing],[fn]]) | 向上滑动元素 |
slideToggle([speed,[easing],[fn]]) | slideDown() 与 slideUp() 之间切换 |
事件切换 | 说明 |
hover([over],out) | 鼠标经过 和 鼠标离开 的符合写法 |
// (1) 事件切换hover 鼠标经过 和 鼠标离开 的符合写法
$(".nav>li").hover(function () {
$(this).children("ul").slideDown(200);
}, function () {
$(this).children("ul").slideUp(200);
});
// (2) 事件切换 hover 如果只写一个函数,那么鼠标经过和鼠标离开都会触发这个函数
$(".nav>li").hover(function(){
$(this).children("ul").slideToggle();
});
语法 | 说明 |
fadeIn([speed,[easing],[fn]]) | 淡入 |
fadeOut([speed,[easing],[fn]]) | 淡出 |
fadeToggle([speed,[easing],[fn]]) | fadeIn() 与 fadeOut() 之间切换 |
fadeTo([speed,opacity,[easing],[fn]]) | 将被选元素的不透明度 逐渐 改变为指定的值 eg:fadeTo(1000,0.3) |
语法 | 说明 |
animate(params,[speed],[easing],[fn]) | 创建自定义动画函数 |
返回顶部:
$(".back").click(function () {
(1) 直接返回顶部
$(document).scrollTop(0);
(2) 带有动画的返回顶部
不能是文档document而是给 html和body元素做动画
$("html,body").stop().animate({
scrollTop: 0
})
})
方法 | 说明 |
stop() | 停止动画 或 效果 写到动画 或 效果的前面(相当于停止结束上一次的动画) |
语法 | 说明 |
prop("属性") | 获取属性 |
prop("属性","属性值") | 设置/修改 元素属性值 |
语法 | 说明 |
attr("属性") | 获取属性 类似原生 getAttribute( ) |
attr("属性","属性值") | 设置属性值 类似原生 setAttribute( ) |
说明:data( ) 方法可以在指定的元素上存取数据,并不会修改Dom元素结构
语法 | 说明 |
data("name","value") | 向被选中元素 附加数据 |
data("name") | 向被选中元素 获取数据 |
主要针对元素的内容 还有 表单的值操作
语法 | 说明 |
html() | 获取元素内容 |
html("内容") | 设置元素内容 |
语法 | 说明 |
text() | 获取 元素文本内容 |
text("文本内容") | 设置 元素文本内容 |
语法 | 说明 |
val() | 获取/设置 表单值 |
遍历:给同一类元素做不同的操作
(1)each() 方法
// 语法一:
$("div").each(function(index,domEle){xxx;})
(2)$.each() 方法
// 语法二:
$.each(object,function(index,element) {xxx;})
$("<li></li>");
(1) 把内容放入匹配元素内部 最后面,类似原生appendChild
element.append("内容");
(2) 把内容放入匹配元素内部 最前面
element.prepend("内容");
(1) 把内容放入目标元素 后面
element.after("内容");
(2) 把内容放入目标元素 前面
element.before("内容");
(1) 删除匹配的元素 (本身)
element.remove();
(2) 删除匹配的元素集合中所有的 子节点
element.empty();
(3) 清空匹配的元素内容
element.html("");
语法 | 说明 |
width() / height() | 取得匹配元素宽度和高度值 只算 width / height |
innerWidth() / innerHeight() | 取得匹配元素宽度和高度值 包含 padding |
outerWidth() / outerHeight() | 取得匹配元素宽度和高度值 包含 padding、border |
outerWidth( true ) / outerHeight( true ) | 取得匹配元素宽度和高度值 包含 padding、border、margin |
方法 | 说明 |
offset ( ) | 返回相对于文档的偏移坐标,跟父级没有关系; 可以设置元素的偏移:offset({top:30,left:30}); |
offset ( ) .top | 获取距离文档顶部的距离 |
offset ( ) .left | 获取距离文档左侧的距离 |
position() | 返回相对于带有定位父级的偏移坐标; 父级没有定位,以文档为准 |
scrollTop() | 获取元素被卷去的头部 |
scrollLeft() | 获取元素被卷去的左侧 |
语法1:
element.事件(function(){})
语法2:
$("div").click(function(){事件处理程序})
// 语法:
element.on(events,[selector],fn)
(1)on() 方法可以进行 事件委派 操作
事件委派:把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素
$("ul").on("click","li",function(){
alert('hello');
});
(2)on() 方法可以给 未来动态生成的元素 绑定事件 ★ ★
<ol> </ol>
...
on() 方法可以给未来动态生成的元素绑定事件 ★★
$("ol").on("click", "li", function () {
alert(222);
})
var li = $("<li>我是后来创建的</li>");
$("ol").append(li);
1.解绑所有事件
$("div").off();
2.解绑 点击事件
$("div").off("click");
3.解绑on()方法添加的 事件委托
$("ul").off("click","li");
one() 绑定只想触发一次的事件:
$("p").one("click", function () {
alert(11);
})
1. element.click();
2. element.trigger("click");
3. element.triggerHandler("focus");
事件被触发,就会有事件对象的产生
element.on(events,[selector],function(event){ })
(1) 阻止默认行为
event.preventDefault() 或者 return false
(2) 阻止冒泡
event.stopPropagation()
语法:
$.extend([deep],target,object1,[objectN])
定义:让jQuery 和 其他JS库 不存在冲突,就叫做多库共存
解决方案:
让jquery 释放对 $ 的控制权,由用户自己决定
让jquery 释放对$的控制权 让用户自己决定
var hah = jQuery.noConflict();
console.log(hah("span"));
hah.each();
(1)jQuery之家★★:jQuery之家-自由分享jQuery、html5、css3的插件库
(2)jQuery插件库:jQuery插件库-收集最全最新最好的jQuery插件
(1)瀑布流
(2)图片懒加载(页面滑动到可视区,再显示图片)
(3)全屏滚动(fullpage.js)
(4)tab栏切换 / 标签栏切换
(5)模态框
(6)导航条