jQuery学习笔记之 Ajax操作篇(一) - 数据加载


Posted in Javascript onJune 23, 2014

加载 HTML

我们通常使用加载 HTML 的方法来加载 HTML 片段,并插入到指定位置,假设当前页面为:

<div></div>
<button>load</button>

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

同目录下的 test.html 文件内容为:

<span>test</span>

我们可以使用 load 方法来加载 HTML,将其绑定到按钮的点击事件上:

$('button').click(function() {
  $('div').load('test.html');
 });

点击按钮后:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

加载 JSON

JSON 即 Javascript Object Notation,直译过来即 Javascript 对象表示法,因此它能很方便地表示和传输数据,它规定键和值都必须包含在双引号内,且函数为非法 JSON 值。

{
  "name": "stephenlee", 
  "sex": "male"
}

将上述 JSON 数据保存在 test.json 文件内。我们可以使用 getJSON 方法加载 JSON 数据,同样将其绑定在按钮的点击事件上:

$('button').click(function() {
  $.getJSON('test.json');
 });

由于 getJSON 方法是作为 jQuery 的全局对象而定义的,因此这里需要使用 $ 来调用该方法。这里的 $ 指的是全局 jQuery 对象,而不是 $() 所指的个别 jQuery 对象。因此我们也称 getJSON 函数为全局函数。
但我们会发现上述代码只是获取了 JSON 数据,但看不出任何效果,这里我们可以使用 getJSON 方法的第二参数作为回调函数来测试效果:

$('button').click(function() {
  $.getJSON('test.json', function(data) {
   console.log(data);
   $.each(data, function(index, content) {
    console.log(content);
   })
  });
 });

点击按钮后,我们来看下 console 内的输出:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

这里的 each 函数的第一个参数可以接收数组或对象,第二个参数为值回调函数,将每次循环中数组或对象的当前索引和值做为参数。

加载 JS

有时候我们不希望在页面初次加载时就加载所有的 JS 文件,而是动态地根据需求来加载,假设当前目录下有一个 JS 文件,内容为一个简单的 alert:

$(function() {
 alert('test');//
})

我们可以使用全局函数 getScript 来加载该文件,同样绑定到按钮的点击事件上:

$('button').click(function() {
  $.getScript('test.js');
 });

点击按钮后,加载 test.js 文件,并成功触发 alert。

加载 XML

对 XML 的加载操作与 JSON 类似,因为 XML 文档的作用也是与数据存储相关,在同目录下创建 text.xml 文件,内容为:

<person>
<name>stephenlee</name>
<sex>male</sex>
</person>

加载 XML 文档可以直接使用 get 方法,为什么看上去像一个默认方法,这个可以根据 AJAX 的全称看出端倪 - Asynchronous JavaScript And XML。
同样将其绑定在按钮点击事件上:

$('button').click(function() {
  $.get('test.xml', function(data) {
    console.log(data);
  });
 });

查看 console 结果为:

jQuery学习笔记之 Ajax操作篇(一) - 数据加载

这里需要注意,如果 XML 文档内的格式错误,虽然不会报错,但是将无法执行回调函数。

Javascript 相关文章推荐
window.onload 加载完毕的问题及解决方案(上)
Jul 09 Javascript
Jquery之美中不足小结
Feb 16 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Jan 21 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
小程序实现列表删除功能
Oct 30 Javascript
小程序自定义单页面、全局导航栏的实现代码
Mar 15 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 #Javascript
yepnope.js使用详解及示例分享
Jun 23 #Javascript
js的延迟执行问题分析
Jun 23 #Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 #Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 #Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 #Javascript
js代码实现的加入收藏效果并兼容主流浏览器
Jun 23 #Javascript
You might like
PHP 常见郁闷问题答解
2006/11/25 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
Destoon模板制作简明教程
2014/06/20 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
python地震数据可视化详解
2019/06/18 Python
python3图片文件批量重命名处理
2019/10/31 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
python3爬虫中异步协程的用法
2020/07/10 Python
django跳转页面传参的实现
2020/09/17 Python
党员志愿者活动总结
2014/06/26 职场文书
通知书大全
2015/04/27 职场文书
2015年新教师工作总结
2015/04/28 职场文书
python内置进制转换函数的操作
2021/06/02 Python