- jQuery 是对javascript的一种封装–js的函数库。
- 用于客户端的开发,由美国人在2001年1月推出。
- 本质上的区别:jQuery 是一个函数库,基于 js 语言编写出来的框架,实质上还是属于 js。
- 代码书写不同,jq 更简单。
- 使用方法不同:使用 jQuery 和 javascript 分别加载 DOM,
js 只执行一次
,jq 可以执行多次
。 - 获取 class 的方法不同。js 没有默认的获取方式,jq 可以通过
.$(".类名")
来获取。
- 轻量级
- 对浏览器的兼容性好
- 强大的选择器
- 完善的 ajax
- 丰富的 API 文档和插件等
- 获取相关的js文件
- jquery-xxx.js 与 jquery-xxx.min.js 区别:
- jquery-xxx.js:开发版本。给程序员看的,有良好的缩进和注释。体积大一些
- jquery-xxx.min.js:生产版本。没有缩进。体积小一些。程序加载更快
- 引用 在页面上引用js文件
- 基本使用语法:
$("选择器名").操作
- jQuery的文档就绪(加载)三种写法:
/* 方法1 */
$(document).ready(() => {
选择对象进行操作
})
/* 方法2 */
$().ready(() => {
选择对象进行操作
})
/* 方法3 */
$(() => { // 此方法最简洁
选择对象进行操作
})
- window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉。
- $(function) 可以定义多次的。
通过jQuery包装DOM(文档)对象后产生的对象,凡是在$(“”)中的都属于jQuery对象。
页面中元素的集合就是文档对象。
注意 🐟
- jQuery 对象与文档对象不能混合使用。
- jQuery 对象不能使用文档对象的属性及方法,同理文档对象也是。
注意 🐱
DOM(文档)对象与 jQuery 对象是可以相互转换的
- js 转 jq:在 dom 对象的最外层用
$()
进行包裹即可。 - jq 转 js:先获取 jq 对象:
var jq = jq = jq = ("选择器名"); $jq.get(索引);
- 方法一:在代码的第一行加入:
jQuery.noConflict()
;释放了 jQuery 的含义,如果仍需使用,需把含义改为 jQuery。 - 方法二
const $jq = jQuery.noConflict() /* 赋值为一个变量 */
$jq(() => {
正常使用
})
- jQuery 与 CSS 是两种不同的语言,jQuery 是一个 js 框架,CSS 是层叠样式表,所以两者本质上是不同的。
- 两者有一定交集,都是被网页或浏览器解析的语言,而 jQuery 可以通过修改浏览器的 dom 对象来实现对 CSS 的修改或控制。
总结,jQuery 选择器应用于 js 中,CSS 选择器用于 CSS 中,只是两者有时使用相同的 id 标识来选择对象。jQuery 选择器包含了 CSS 1, CSS 2, CSS 3 中的绝大多数选择器。
- 写法简洁
- 继承了 CSS 选择器的风格,支持 CSS1–CSS3 选择器
- 完善的处理机制可以避免浏览器报错,比单纯的 CSS 功能更强大,还可兼容不同的浏览器。
选择器名 | 描述 | 示例 |
---|
id选择器: #id | 根据id获取元素 | $(“#test”)\ |
类选择器: .class | 根据类名获取元素 | $(“.test”)\ |
元素选择器: element | 根据元素名称获取元素 | $(“p”)\ |
所有元素选择器: * | 获取所有元素 | $(“*”)\ |
并集选择器: s1,s2… | 将选择的所有元素合并 | $(“div, span”)\ |
选择器 | 语法 | 描述 |
---|
后代选择器 | $("A B ") | 选择A元素内部的所有B元素 |
子选择器 | $("A > B") | 选择A元素内部的所有B子元素 |
选择器 | 语法 | 描述 |
---|
属性名称选择器 | $(“A[属性名]”) | 包含指定属性的选择器 |
属性选择器 | $(“A[属性名=‘值’]”) | 包含指定属性等于指定值的选择器 |
复合属性选择器 | $(“A[属性名=‘值’][]…”) | 包含多个属性条件的选择器 |
选择器 | 语法 | 描述 |
---|
首元素选择器 | | 获得选择的元素中的第一个元素 |
尾元素选择器 | | 获得选择的元素中的最后一个元素 |
非元素选择器 | (selector) | 不包括指定内容的元素 |
偶数选择器 | | 偶数,从 0 开始计数 |
奇数选择器 | | 奇数,从 0 开始计数 |
等于索引选择器 | (index) | 指定索引元素 |
大于索引选择器 | (index) | 大于指定索引元素 |
小于索引选择器 | (index) | 小于指定索引元素 |
标题选择器 | | 获得标题(h1~h6)元素,固定写法 |
选择器 | 语法 | 描述 |
---|
可用元素选择器 | | 获得可用元素 |
不可用元素选择器 | | 获得不可用元素 |
单选/复选框选中选择器 | | 获得单选/复选框选中的元素 |
下拉框选中选择器 | | 获得下拉框选中的元素 |
语法 | 描述 |
---|
$(“:input”) | 选取所有的<input> ,<textarea> ,<select> ,<button> 元素 |
$(“:text”) | 选取所有的单行文本框 |
$(“:password”) | 选取所有的密码框 |
$(“:radio”) | 选取所有的单选框 |
$(“:checkbox”) | 选取所有的多选框 |
$(“:submit”) | 选取所有的提交按钮 |
$(“:button”) | 选取所有的按钮 |
$(“:hidden”) | 选取所有的不可见元素 |
语法 | 示例 | 描述 |
---|
append() | 对象1.append(对象2) | 将对象2添加到对象1元素内部,并且在末尾 |
appendTo() | 对象1.appendTo(对象2): | 将对象1添加到对象2内部,并且在末尾 |
prepend() | 对象1.prepend(对象2): | 将对象2添加到对象1元素内部,并且在开头 |
prependTo() | 对象1.prependTo(对象2): | 将对象1添加到对象2内部,并且在开头 |
empty() | 对象.empty(): | 将对象的后代元素全部清空,但是保留当前对象以及其属性节点 |
after() | 对象1.after(对象2) | 将对象2添加到对象1后边。对象1和对象2是兄弟关系 |
before() | 对象1.before(对象2) | 将对象2添加到对象1前边。对象1和对象2是兄弟关系 |
insertAfter() | 对象1.insertAfter(对象2) | 将对象1添加到对象2后边。对象1和对象2是兄弟关系 |
insertBefore() | 对象1.insertBefore(对象2) | 将对象1添加到对象2前边。对象1和对象2是兄弟关系 |
remove() | 对象.remove() | 将对象删除掉 |
示例 | 描述 |
---|
对象A.clone() | 复制A对象 |
对象A.replaceWith(对象B) | 把"A对象"替换为"B对象" |
对象A.replaceAll(对象B) | 使用"A对象"替换"B对象" |
标签A.wrap(标签B) | B标签分别包裹住每一个A标签 |
标签A.wrapAll(标签B) | B标签包裹住所有A标签 |
标签A.wrapInner(标签B) | B标签分别包裹住A标签内的所有文本内容 |
示例 | 描述 |
---|
attr(“属性名”) | 获取属性值 |
attr(“属性名”,“属性值”) | 设置属性值 |
removeAttr(“属性名”) | 移除属性 |
示例 | 描述 |
---|
addClass(样式名) | 添加样式 |
removeClass(样式名) | 删除样式 |
toggleClass(样式名) | 切换样式 |
css(“样式名”,“属性”) | 添加单个样式 |
css({“样式名1”:“属性1” , “样式名2”:“属性2”…}) | 添加多个样式 |
hasClass(样式名) | 判断样式是否存在 |
示例 | 描述 |
---|
html()方法 | 用于设置或获取某个元素中的html内容 |
text()方法 | 用于设置或获取某个元素中的文本内容 |
val()方法 | 用于设置或获取某个元素的值 |
示例 | 描述 |
---|
children() | 获取当前的元素的子元素集合(父亲找儿子) |
find() | 获取当前的元素的所有后代元素集合(祖宗找后代) |
parent() | 获取当前元素的父元素集合(儿子找父亲) |
parents() | 获取当前元素的所有前辈元素集合(后辈找前辈) |
siblings() | 获取当前元素的所有同级元素集合(同辈找同辈) |
next() | 获取当前元素的下一个同级元素 |
prev() | 获取当前元素的上一个同级元素 |
示例 | 描述 |
---|
css()方法 | 设置或获取元素的样式属性 |
height(),width() | 设置或获取高度、宽度属性 |
- jQuery 对象.each(callback)
语法:jQuery 对象.each(function(index,element){})
;
- index:就是元素在集合中的索引
- element:就是集合中的每一个元素对象
- this:获取到的当前元素对象
- callback:回调函数
$.each(object, [callback])
- for…of:
for(元素对象 of 容器对象)
- jQuery 的标准绑定方式
- jQuery 对象.事件方法(回调函数);
- 注意:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
- 补充: 表单对象.submit();//让表单提交
- on()或者bind()绑定事件和off()或者unbind()解除绑定
- jQuery 对象.on(“事件名称”,回调函数)
- jQuery 对象.off(“事件名称”)
- 如果 off 方法不传递任何参数,则将组件上的所有事件全部解绑
- 事件切换1:toggle(fn1,fn2,…)方法:模拟鼠标连续点击事件,对里面的函数进行切换。
- jQuery 对象.toggle(fn1,fn2…)
- 当单击 jQuery 对象对应的组件后,会执行 fn1。第二次点击会执行 fn2…
- 注意:1.9 版本之后 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。
- 事件切换2:hover(enter,leave)方法:模拟鼠标悬停事件,鼠标移到元素上触发第一个 enter() 函数,鼠标移除触发 leave() 函数
- 显示/隐藏:show() / hide() 组合方法:toggle()
- 淡入/淡出:fadeIn() / fadeOut() 组合方法:fadeToggle()
- 滑入/滑出:slideUp() / slideDown()组合方法:slideToggle()
- 自定义动画:animate()