抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

摘要:本文主要学习了JQuery库,包括选择器、文档处理、事件、效果,以及AJAX调用。

1 简介

JQuery这个名字由JavaScript和Query组合而成,但并非官方定义的全称。

JQuery是一个流行的JavaScript库,旨在简化HTML文档遍历、事件处理、动画和AJAX交互等网页开发任务。尽管名字中有“Query”,它并不用于数据库查询,而是专注于提供易于使用的API来操作DOM(文档对象模型)和实现各种前端功能。

JQuery设计的宗旨是写更少的代码,做更多的事情。

2 引入

JQuery库实际上就是一个JS文件,只需要在网页中直接引入这个文件就可以了。

从官网引入:

html
1
<script src="jquery-1.10.2.min.js"></script>

因为网络原因,建议从CDN引入:

html
1
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

也可以下载JQuery文件并放置在项目中,然后通过script元素引用。

3 语法

3.1 基础语法

JQuery语法是通过选取HTML元素,并对选取的元素执行某些操作。

基础语法:

js
1
$(selector).action();

美元$符号定义JQuery,选择器selector用于查询HTML元素,方法action()执行对元素的操作。

3.2 核心

JQuery库为window对象定义了一个$函数JQuery(),也可以写作$()

JQuery()函数会根据参数数据类型的不同做不同的工作,返回一个JQuery封装的伪数组对象。

3.2.1 四种参数形式

JQuery()函数中可以存放的四种参数形式,返回的均是JQuery对象。

  1. 选择器字符串

格式为:

js
1
$(选择器字符串)

通过相应选择器获取对应的DOM对象,然后将这些DOM封装到一个JQuery对象中并返回:

js
1
var $div = $('div');//选取所有div元素节点并返回,将这些DOM节点封装到JQuery对象
  1. DOM对象

格式为:

js
1
$(DOM对象)

将该DOM对象封装成JQuery对象并返回:

js
1
2
var div = document.getElementsByTagName('div');
var $div = $(div);//将DOM对象转化为JQuer对象
  1. HTML文本字符串

格式为:

js
1
$(HTML文本字符串)

根据传入的文本创建好HTML元素并封装成JQuery对象返回:

js
1
var $div = $('<div class="one">one<div>');//创建一个类名为one的div元素且将其封装成一个JQuery对象
  1. 匿名函数

格式为:

js
1
$(匿名函数)

当文档结构加载完毕之后JQuery函数调用匿名函数:

js
1
2
$(function(){ });//文档结构加载完毕后执行function函数中的代码
$(document).ready(function(){ });//将document节点转化为JQuery对象,在调用对象ready()方法实现文档加载完毕后再执行函数内代码

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
    2
    var 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请求:

js
1
2
3
$.get(url, {name:'John',location:'Boston'}, function(data){
alert('Data Loaded: ' + data);
})

发送post请求:

js
1
2
3
$.post(url, {name:'John',location:'Boston'}, function(data){
alert('Data Loaded: ' + data);
})

发送ajax请求:

js
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: {name:'John',location:'Boston'},
success: function(msg){
alert('Success');
},
error: function(msg){
alert('Error');
}
})

评论