jQuery基础
关于jQuery
现在是否还需要学习jQuery,毫无疑问到目前为止,我们仍然需要学习jQuery,原因如下:
- 各大网站还在应用(京东、百度)
- 一些广告页面、落地页还在应用
- 源码非常优秀,有助于理解JavaScript
- 其实对DOM操作并不能完全移除,只要涉及到DOM操作,jQuery是非常方便的
- jquery更方便写js8
jQuery简介
- jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画操作更加简单。
- jQuery最大的优点就是简化DOM操作
jQuery版本说明
jQuery分为三个大版本:1.x 2.x 3.x
1.x版本
兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
2.x版本
不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
3.x版本
不兼容ie678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本。最新版本:3.6.0
jQuery重点讲解知识点
- 选择器
- DOM操作
- CSS操作
- 事件处理
- 遍历
- 动画
jQuery重点讲解知识点
-
选择器
-
[基础选择器] ##选择器之基础选择器
- 类选择器 $(".box")
- 元素选择器 $("span")
- ID选择器 $("#it")
- 子元素选择器 $(".topnav > li")
- 后代元素选择器 $(".topnav li")
-
[属性选择器] ##选择器之属性选择器
- 完美匹配 [name="value"]
- 包含 [name*="value"]
- 前缀 [name|="value"]
- 开头 [name^="value"]
- 结尾 [name$="value"]
- 空格 [name~="value"]
-
[jQuery选择器] ##选择器之jQuery扩展
- 索引值为index的元素 :eq(index) Selector
- 索引值为偶数 :even Selector
- 索引值为奇数 :odd Selector
- 第一个匹配 :first Selector
- 最后一个匹配 :last Selector
- 所有大于给定index(索引值) :gt(index) Selector
- 所有索引值小于给定index :lt(index) Selector
-
-
[DOM操作] ##DOM操作
-
Class操作
- 添加类名 addClass()
- 移除类名 removeClass()
- 开关类名(若有则关,若无则开) toggleClass()
- 判断是否有类名 hasClass()
-
文本操作
- 获取或者设置html内容 html()
- 获取到的内容是字符串 text()
- 获input标签中的内容 val()
-
属性操作
- 获取或者设置元素的属性 attr() 例如src、alt等等
- 移除一个属性 removeAttr()
-
DOM 插入并包裹现有内容(父级元素)
- 添加父级元素(可以设置父级属性) .wrap()
- 删除父级元素 .unwrap()
- 添加一个包裹所有相同子级的父级 .wrapAll()
- 子级元素里的内容被包裹 .wrapInner()
-
DOM 插入现有元素内
- 在匹配元素里面的末尾处插入参数内容 .append()
- 在匹配元素里面的开头处插入参数内容 .prepend()
-
DOM 插入现有元素外
- 同极元素的后面加入兄弟节点 .after()
- 同极元素的前面加入兄弟节点 .before()
-
DOM 移除
- 清空元素里面的内容 .empty()
- 包括元素都移除 .remove()
-
DOM 替换
- 用需要的内容代替匹配元素 .replaceAll()
- 把匹配元素替换成需要的内容 .replaceWith()
-
-
CSS操作
-
获取和设置匹配元素的样式 .css()
-
宽度高度处理 .height(),.width()
-
内部宽高处理(宽高+padding) .innerHeight(),.innerWidth()
-
外部宽高处理(宽高+padding+border+选择性magin(true)) .outerHeight(),.outerWidth()
-
位置
- 相对于文档的坐标 .offset()
- 相对于父级元素的坐标 .position()
- 滚动条的位置 .scrollLeft(), .scrollTop()
-
-
事件处理
-
绑定事件处理器
- 添加事件或事件代理 on()
- 添加只能执行一次的事件 .one()
- 移除事件 .off()
-
鼠标事件
- 点击事件 .click()
- 滑入滑出俩个事件 .hover()
- 滑入事件(不支持冒泡) .mouseenter()
- 滑出事件(不支持冒泡).mouseleave()
- 监听滑动事件 .mousemove()
- 滑入事件(支持冒泡).mouseover()
- 滑出事件(支持冒泡).mouseout()
-
表单事件
- 获取焦点事件 .focus()
- 失去焦点事件 .blur()
- 表单内容改变事件、改变后回车、改变后失去焦点 .change()
- 表单提交事件(只能form) .submit()
-
键盘事件
- 添加键盘按下事件 .keydown()
- 添加键盘事件 .keypress()
- 添加键盘抬起事件 .keyup()
-
浏览器事件
- 浏览器窗口发生变化 .resize()
- 浏览器滚动事件 .scroll()
-
事件对象
- 获取事件类型 event.type
- 获取指向触发事件的元素 event.target
- 获取指向添加事件的元素event.currentTarget
- 事件行为将不再触发 event.preventDefault()
- 防止事件冒泡到DOM树上(防止事件冒泡到DOM树上)event.stopPropagation()
-
-
遍历
-
列表遍历
- 匹配当前集合中的每个元素(返回一个新的数组) .map()
- 匹配当前集合中的每个元素(返回一个新的数组) .each()
-
列表中获得一个JS对象的DOM元素 .get()
-
树遍历(元素关系)
- 获得子元素(可以传递一个选择器参数) .children()
- 获得后代元素 .find()
- 获得元素紧邻的后面同辈元素 .next()
- 获得元素的父元素 .parent()
- 获得元素的兄弟元素(可以传递一个选择器参数) .siblings()
-
-
动画
- 执行显示动画(变大) .show()
- 执行隐藏动画(变小) .hide()
- 淡入的方式显示匹配元素 .fadeIn()
- 淡出的方式显示匹配元素 .fadeOut()
- 滑动动画显示(从上到下展开) .slideDown()
- 滑动动画隐藏(从下到上隐藏) .slideUp()
- 自定义动画 .animate()