三、jQuery中的Ajax
时间:2022-07-23
本文章向大家介绍三、jQuery中的Ajax,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JQuery中的Ajax
方法
- load方法
- .get和.post方法
- $.ajax方法
- .getScript方法和.JSON方法
事件
- ajaxStart和ajaxStop
- ajaxComlete、ajaxSend、ajaxError、ajaxSuccess事件
load方法
$element.load(url,[data],[callback])
- url 异步请求的地址
- data 异步请求的数据.。如果传入参数那么请求方式为post,否则为get。请求数据为键值对形式。
- callback 自动将返回结果写入到目标元素中
$('.btn').click(function () {
$('button').load('data/server2.txt', { name: '123' }, function () {
console.log('success');
})
})
此方法会自动将请求结果写入到调用元素中。
get与post方法
.get(url,[data],[callback],[type])与.post(url,[data],[callback],[type])
- url 请求的地址
- data 请求的数据。键值对形式。
- callback 请求完成时的回调函数。会将请求数据的结果作为回调函数的参数传入。
- type 设置返回数据内容的格式。值为xml、html、script、json、text和_default。
$('.btn').click(function () {
$.get('data/server1.json', { name: '666' }, function (backData) {
console.log(backData);
}, 'json')
})
ajax方法
$.ajax('data/server1.json', {
// 请求的类型
type: 'get',
// 请求的数据
data: {
name: '666'
},
// 服务器返回的数据类型
dataType: 'json',
// 响应成功时的回调函数
success: function (backData) {
console.log(backData);
}
})
getScript方法
$.getScript(url,[backcall])
$.getScript('data/server3.js', function () {
console.log('加载成功了');
})
获取成功后会自动调用获取的脚本js代码。 回调函数会返回脚本的字符串类型,可以通过eval函数进行调用。
getJSON
$.getJSON(url,[backcall])
$('.btn').click(function () {
$.getJSON('data/server1.json', function (data) {
console.log('加载成功了,返回数据为:', data);
})
})
请求方式为GET。
省市联动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<select id="province"></select>
<select id="city">
<option value="">---</option>
</select>
<select id="county">
<option value="">---</option>
</select>
<script>
var $province = $('#province')
var $city = $('#city')
var json
$.getJSON('data/server1.json', function (data) {
$.each(data, function (index, obj) {
json = data
var provinceName = obj.province
$province.append(`<option value="${provinceName}">${provinceName}</option>`)
})
$province.bind('change', function () {
$city.empty()
$city.append(`<option value="">----</option>`)
var provinceElementName = $(this).children('option:selected').text()
$.each(json, function (index, obj) {
var provinceName = obj.province
if (provinceElementName === provinceName) {
var cities = obj.cities
$.each(cities, function (index, obj) {
var cityName = obj.city;
$city.append(`<option value="${cityName}">${cityName}</option>`)
})
}
})
})
})
</script>
</body>
</html>
搜索框提示案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<style>
.container #search {
width: 300px;
}
.container .alert {
width: 300px;
border: 1px solid lightgray;
display: none;
}
.container .alert ul {
list-style: none;
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<div class="container">
<input type="text" id="search">
<div class="alert">
<ul class="tip">
<li>前端666</li>
<li>前端666</li>
</ul>
</div>
</div>
<script>
$('#search').bind('input', function (e) {
var inputValue = $(this).val()
$.getJSON('data/server4.json', function (data) {
$('.tip').empty()
$.each(data, function (index, obj) {
console.log(index, obj);
if (index === inputValue) {
$('.alert').show()
$.each(obj, function (i, o) {
$('.tip').append(`<li>${o}</li>`)
})
}
})
})
})
</script>
</body>
</html>
异步提交表单的步骤
- 获取表单组件的内容
- 根据表单数据构建请求数据
- 通过Ajax异步提交
表单序列化
- serialize()方法 将表单组件对应的数据值序列化为指定格式的字符串内容。
- serializeArray()方法 将表单组件对应的数据值序列化为JSON格式的数据内容。
表情需对需要获取的值设置name属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<form action="#">
<input type="text" name="search">
<button type="submit">Submit</button>
</form>
<script>
$('button').on('click', function (e) {
e.preventDefault()
var data1 = $('form').serialize()
var data2 = $('form').serializeArray()
console.log(data1);
console.log(data2);
})
</script>
</body>
</html>
- cobbler自动安装系统(Centos7.X)
- Linux NTP时间服务器
- 子查询的另一种方式——映射
- LNMP架构之搭建wordpress博客网站
- Nginx的各种报错总结
- 谷歌TensorFlowLite正式发布,机器学习框架向移动端大步挺进!
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
- 18888元秒下的域名sdhlx.com已建站
- 锂离子电池发明人:自动驾驶汽车电池需要更加耐用
- Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
- Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
- 快速入门系列--WebAPI--03框架你值得拥有
- 快速入门系列--MVC--06视图
- 腾讯入局物业管理 欲改造传统服务?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 022.基于IT论坛案例学习Elasticsearch(一):Filter相关知识
- 耐人寻味的逻辑错误
- 实践搭建Sentry异常中心结合Laravel使用
- 自动化部署 - Laravel Deploy实战
- 正则表达式 | 锚点
- adb shell读取设置手机ocd值以及ocd介绍
- sqli-labs练习(第三、四关)
- 使用 Python 操作 word文档
- sqli-labs练习(第五、六关)
- 分享一个Qt写的SMTP邮件客户端(库)
- mysql学习笔记
- MapReduce的常见输入格式之NlineInputFormat
- MapReduce的常见输入格式之KeyValueTextInputFormat
- MapReduce之 FileInputFormat的切片策略(默认)
- MapReduce之片和块的关系