摘要:本文主要学习了JQuery库,包括选择器、文档处理、事件、效果,以及AJAX调用。
1 简介
JQuery这个名字由JavaScript和Query组合而成,但并非官方定义的全称。
JQuery是一个流行的JavaScript库,旨在简化HTML文档遍历、事件处理、动画和AJAX交互等网页开发任务。尽管名字中有“Query”,它并不用于数据库查询,而是专注于提供易于使用的API来操作DOM(文档对象模型)和实现各种前端功能。
JQuery设计的宗旨是写更少的代码,做更多的事情。
2 引入
JQuery库实际上就是一个JS文件,只需要在网页中直接引入这个文件就可以了。
从官网引入:
1 | <script src="jquery-1.10.2.min.js"></script> |
因为网络原因,建议从CDN引入:
1 | <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> |
也可以下载JQuery文件并放置在项目中,然后通过script
元素引用。
3 语法
3.1 基础语法
JQuery语法是通过选取HTML元素,并对选取的元素执行某些操作。
基础语法:
1 | $(selector).action(); |
美元$
符号定义JQuery,选择器selector
用于查询HTML元素,方法action()
执行对元素的操作。
3.2 核心
JQuery库为window对象定义了一个$函数JQuery()
,也可以写作$()
。
JQuery()函数会根据参数数据类型的不同做不同的工作,返回一个JQuery封装的伪数组对象。
3.2.1 四种参数形式
JQuery()函数中可以存放的四种参数形式,返回的均是JQuery对象。
- 选择器字符串
格式为:
1 | $(选择器字符串) |
通过相应选择器获取对应的DOM对象,然后将这些DOM封装到一个JQuery对象中并返回:
1 | var $div = $('div');//选取所有div元素节点并返回,将这些DOM节点封装到JQuery对象 |
- DOM对象
格式为:
1 | $(DOM对象) |
将该DOM对象封装成JQuery对象并返回:
1 | var div = document.getElementsByTagName('div'); |
- HTML文本字符串
格式为:
1 | $(HTML文本字符串) |
根据传入的文本创建好HTML元素并封装成JQuery对象返回:
1 | var $div = $('<div class="one">one<div>');//创建一个类名为one的div元素且将其封装成一个JQuery对象 |
- 匿名函数
格式为:
1 | $(匿名函数) |
当文档结构加载完毕之后JQuery函数调用匿名函数:
1 | $(function(){ });//文档结构加载完毕后执行function函数中的代码 |
3.2.2 JQuery对象和DOM对象
JQuery对象是JQuery独有的,JQuery对象无法使用DOM对象的任何方法。同样的,DOM对象也不能使用JQuery里的任何方法。
JQuery对象和DOM对象的转化:
- JQuery对象转化为DOM对象:
js 1
$('div')[0];//在JQuery对象后面添加数值下标即可选择其获取到的JQuery类数组对象中相应位置存放的DOM对象
- DOM对象转化为JQuery对象:
js 1
2var div = document.getElementsByTagName('div');//多个div返回的是一个DOM类数组对象
var $div = $(div);//将DOM对象作为JQuery函数的参数即可将该DOM对象转化为JQuery对象
JQuery对象的操作实际上就是对JQuery数组中DOM对象的批量操作。
3.3 选择器
3.3.1 基本选择器
基本选择器:
分类 | 示例 | 说明 |
---|---|---|
id选择器 |
$('#username')
|
匹配id属性为username的第一个元素。 |
class选择器 |
$('.red')
|
匹配class属性包含red的所有元素。 |
标签选择器 |
$('span')
|
匹配标签名为span的所有元素。 |
多选择器 |
$('#username,.red, span, div')
|
匹配多个选择器匹配的所有元素。 |
全部选择器 |
$('*')
|
匹配页面上的所有元素。 |
3.3.2 层次选择器
层次选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配子元素 |
$('form>input')
|
在所有form元素的子元素中匹配input元素。 |
匹配后代元素 |
$('form input')
|
在所有form元素的后代元素中匹配input元素,后代元素包括子元素和孙子元素。 |
匹配之后相邻的兄弟元素 |
$('label+input')
|
在所有label元素后相邻的兄弟元素中匹配input元素。 |
匹配之后的兄弟元素 |
$('label~input')
|
在所有label元素后的兄弟元素中匹配input元素。 |
3.3.3 过滤选择器
过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,该选择器都以:
开头。
过滤选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配第一个元素 |
$('tr:first')
|
匹配第一个tr元素。 |
匹配最后一个元素 |
$('tr:last')
|
匹配最后一个tr元素。 |
匹配偶数索引元素 |
$('tr:even')
|
匹配所有索引值为偶数的tr元素,从0开始计数。 |
匹配奇数索引元素 |
$('tr:odd')
|
匹配所有索引值为奇数的tr元素,从0开始计数。 |
匹配等于指定索引的元素 |
$('tr:eq(3)')
|
匹配索引值等于3的tr元素,从0开始计数。 |
匹配大于指定索引的元素 |
$('tr:gt(3)')
|
匹配所有索引值大于3的tr元素,从0开始计数。 |
匹配小于指定索引的元素 |
$('tr:lt(3)')
|
匹配所有索引值小于3的tr元素,从0开始计数。 |
匹配不被指定的元素 |
$('tr:not(:eq(3))')
|
匹配索引值不等于3的tr元素,从0开始计数。 |
子元素过滤选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配指定的子元素 |
$('td:nth-child(3)')
|
在所有父元素的第3个子元素中,匹配td元素。 |
匹配指定的第一个子元素 |
$('td:first-child()')
|
在所有父元素的第一个子元素中,匹配td元素。 |
匹配指定的最后一个子元素 |
$('td:last-child()')
|
在所有父元素的最后一个子元素中,匹配td元素。 |
属性过滤选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配指定属性的元素 |
$('input[name]')
|
匹配name属性存在的input元素。 |
匹配属性和指定属性值相同的元素 |
$('input[name="username"]')
|
匹配name属性的属性值和username相同的input元素。 |
匹配属性和指定属性值不同的元素 |
$('input[name!="username"]')
|
匹配name属性的属性值和username不同的input元素。 |
匹配属性以指定属性值开始的元素 |
$('input[name^="user"]')
|
匹配name属性的属性值以user开始的input元素。 |
匹配属性以指定属性值结束的元素 |
$('input[name$="user"]')
|
匹配name属性的属性值以user结束的input元素。 |
匹配属性包含指定属性值的元素 |
$('input[name*="user"]')
|
匹配name属性的属性值包含user的input元素。 |
表单过滤选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配输入框元素 |
$(':input')
|
匹配所有input元素,即匹配所有输入框元素。 |
匹配文本框元素 |
$(':text')
|
匹配所有type属性值为text的input元素。 |
匹配密码框元素 |
$(':password')
|
匹配所有type属性值为password的input元素。 |
匹配单选框元素 |
$(':radio')
|
匹配所有type属性值为radio的input元素。 |
匹配复选框元素 |
$(':checkbox')
|
匹配所有type属性值为checkbox的input元素。 |
匹配按钮元素 |
$(':button')
|
匹配所有type属性值为button的input元素。 |
匹配提交按钮元素 |
$(':submit')
|
匹配所有type属性值为submit的input元素。 |
匹配重置按钮元素 |
$(':reset')
|
匹配所有type属性值为reset的input元素。 |
表单对象属性过滤选择器:
分类 | 示例 | 说明 |
---|---|---|
匹配禁用的表单元素 |
$('input:disabled')
|
匹配所有disabled属性值为true的input元素。 |
匹配启用的表单元素 |
$('input:enabled')
|
匹配所有disabled属性值为false的input元素。 |
匹配选中的选项元素 |
$('input:checked')
|
匹配选中的input选项元素,包括单选框和复选框。 |
匹配选中的下拉项元素 |
$('select option:selected')
|
匹配选中的option选项元素。 |
匹配所有隐藏元素 |
$('div:hidden')
|
匹配所有隐藏的div元素。 |
3.4 文档处理
3.4.1 插入节点
插入节点:
分类 | 示例 | 说明 |
---|---|---|
插入到内部尾部 |
$('p').append(插入内容)
|
向p元素内部的尾部插入指定内容,插入内容作为子节点。 |
插入到内部头部 |
$('p').prepend(插入内容)
|
向p元素内部的头部插入指定内容,插入内容作为子节点。 |
插入到外部尾部 |
$('p').after(插入内容)
|
向p元素外部的尾部插入指定内容,插入内容作为兄弟节点。 |
插入到外部头部 |
$('p').before(插入内容)
|
向p元素外部的头部插入指定内容,插入内容作为兄弟节点。 |
3.4.2 删除节点
删除节点:
分类 | 示例 | 说明 |
---|---|---|
删除子节点 |
$('div').empty()
|
删除div元素的子节点和内容节点,保留div元素本身。 |
删除节点 |
$('div').remove()
|
删除div元素,包括div元素本身,以及div元素的子节点和内容节点。 |
3.4.3 查找节点
查找节点:
分类 | 示例 | 说明 |
---|---|---|
查找节点 |
$('div').find('span')
|
在div元素中查找span元素,即匹配div元素的span后代元素。 |
遍历节点 |
$('div').each(function(index,element){ })
|
遍历div元素,使用index 表示当前下标,使用element 表示当前元素。如果是匿名函数,还可以使用 ${this} 代替element 表示当前元素。 |
3.4.4 修改节点
内容操作:
分类 | 示例 | 说明 |
---|---|---|
获取文本内容 |
$('#welcome').text()
|
获取id属性为welcome 的元素的文本内容。 |
修改文本内容 |
$('#welcome').text('欢迎')
|
修改id属性为welcome 的元素的文本内容为欢迎 。 |
值操作:
分类 | 示例 | 说明 |
---|---|---|
获取value属性 |
$('#username').val()
|
获取id属性为username 的元素的文本内容。 |
修改value属性 |
$('#username').val('佚名')
|
修改id属性为username 的元素的文本内容为佚名 。 |
属性操作:
分类 | 示例 | 说明 |
---|---|---|
获取指定属性 |
$('#username').attr('readonly')
|
获取id属性为username 的元素的readonly 属性。 |
修改指定属性 |
$('#username').attr('readonly',true)
|
修改id属性为username 的元素的readonly 属性为true 。 |
删除指定属性 |
$('#username').removeAttr('readonly')
|
删除id属性为username 的元素的readonly 属性。 |
类操作:
分类 | 示例 | 说明 |
---|---|---|
增加指定类 |
$('#username').addClass('username')
|
给id属性为username 的元素增加username 类。 |
删除指定类 |
$('#username').removeClass('username')
|
给id属性为username 的元素删除username 类。 |
样式操作:
分类 | 示例 | 说明 |
---|---|---|
获取指定样式 |
$('#username').css('color')
|
获取id属性为username 的元素的color 样式。 |
修改指定样式 |
$('#username').css('color','red')
|
修改id属性为username 的元素的color 样式为red 。 |
3.5 事件
常用事件:
分类 | 示例 | 说明 |
---|---|---|
加载 |
$(document).ready(function(){ })
|
在页面加载DOM结构后执行方法。 |
点击 |
$('#submit').click(function(){ })
|
当id属性为submit的元素在点击时执行方法。 |
获得焦点 |
$('#username').focus(function(){ })
|
当id属性为username的元素在获得焦点时执行方法。 |
失去焦点 |
$('#username').blur(function(){ })
|
当id属性为username的元素在失去焦点时执行方法。 |
改变 |
$('#username').change(function(){ })
|
当id属性为username的元素在获得焦点后改变值时执行方法,也会在元素失去焦点时执行方法。 |
表单提交 |
$('#form').submit(function(){ })
|
当id属性为form的表单元素在提交时执行方法。 |
3.6 效果
常用效果:
分类 | 示例 | 说明 |
---|---|---|
显示 |
$('#username').show()
|
显示id属性为username的元素。 |
隐藏 |
$('#username').hide()
|
隐藏id属性为username的元素。 |
切换 |
$('#username').toggle()
|
切换id属性为username的元素的可见性。 |
3.7 AJAX
发送get请求:
1 | $.get(url, {name:'John',location:'Boston'}, function(data){ |
发送post请求:
1 | $.post(url, {name:'John',location:'Boston'}, function(data){ |
发送ajax请求:
1 | $.ajax({ |
条