博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery学习之Ajax
阅读量:5310 次
发布时间:2019-06-14

本文共 5996 字,大约阅读时间需要 19 分钟。

Ajax:Async json and xml

1.追加html

.load();

$(document).ready(function () {    $('#letter-a a').click(function (e) {        e.preventDefault();//取消a点击的默认操作        $('#dictionary').load('a.html');        alert('Loaded!');//其实是异步的,数据没加载显示,便已经弹出    })});
$('#letter-h a').click(function (e) {    e.preventDefault();    $('#dictionary').load('h.html .entry');//有选择的加载}) 

2.操作json

$.getJSON() ;

$('#letter-b a').click(function (e) {    e.preventDefault();    //$.getJSON('b.json');    //当单击按钮时,我们看不到以上代码的效果。    //因为虽然函数调用加载了文件,但是并没有告诉JavaScript对返回的数据如何处理。    //为此,我们需要使用一个回调函数。    $.getJSON('b.json', function (data) {        var html = '';        $.each(data, function (entryIndex, entry) {            html += '
'; html += '

' + entry.term + '

'; html += '
' + entry.part + '
'; html += '
' + entry.definition + '
'; html += '
'; }); $('#dictionary').html(html); })});

 3.加载Js文件

$.getScript();  接受一个URL参数以查找脚本文件

//第一种$('#letter-c a').click(function (e) {    e.preventDefault();//取消a点击的默认操作    $.getScript('c.js');//加载js文件以引用});//第二种$(document.createElement('script'))//创建script    .attr({ src: 'http://example.com/example.js' })//src    .appendTo('head');

4.加载xml

$.get();  接受一个URL参数和一个回调函数

$('#letter-d a').click(function (e) {    e.preventDefault();//取消a点击的默认操作    $.get('d.xml', function (data) {        $('#dictionary').empty();//清空        $(data).find('entry').each(function () {            var $entry = $(this);            var html = '
'; html += '

' + $entry.attr('term') + '

'//获取xml节点属性的值 html += '
' + $entry.attr('part') + '
'//获取xml节点属性的值 html += '
'; html += $entry.find('definition').text(); var $quote = $entry.find('quote'); if ($quote.length) {
//如果存在 html += '
'; $quote.find('line').each(function () { html += '
' + $(this).text() + '
'; }) if ($quote.attr('author')) { html += '
' + $quote.attr('author') + '
'; } html += '
'; } html += '
'; $('#dictionary').append(html); }) });}) //entry修改为entry:has(quote)就可以把词条限定为必须包含嵌套的引用元素 //还可以通过entry:has(quote[author])进一步限定词条中的引用元素必须包含author属性
$('#letter-d a').click(function (e) {    e.preventDefault();//取消a点击的默认操作    $.get('d.xml', function (data) {        $('#dictionary').empty();//清空        $(data).find('entry:has(quote[author])').each(function () {
//过滤 var $entry = $(this); var html = '
'; html += '

' + $entry.attr('term') + '

'//获取xml节点属性的值 html += '
' + $entry.attr('part') + '
'//获取xml节点属性的值 html += '
'; html += $entry.find('definition').text(); var $quote = $entry.find('quote'); html += '
'; $quote.find('line').each(function () { html += '
' + $(this).text() + '
'; }) html += '
' + $quote.attr('author') + '
'; html += '
'; html += '
'; $('#dictionary').append(html); }) })});

 5.GET请求

$.get();  接受一个URL参数、请求参数好和一个回调函数

$('#letter-f form').submit(function (e) {    e.preventDefault();    //$.get('f.php', { term: $('#term').val() }, function (data) {
// $('#dictionary').html(data); //}); //简化,便于扩展而不修改此处的js var formValues = $(this).serialize();//将匹配的DOM元素转换成能够随Ajax请求传递的查询字符串 $.get('f.php', formValues, function (data) { $('#dictionary').html(data); })}); 

6.POST请求

$.post();  接受一个URL参数、请求参数好和一个回调函数

$('#letter-e a').click(function (event) {    event.preventDefault();    var requestData = { term: $(this).text() };    //$.post('e.php', requestData, function (data) {
// $('#dictionary').html(data); //}); //简化 $('#dictionary').load('e.php', requestData);});

7.异常处理

.fial();  .status属性中包含着服务器返回的状态码

$('#letter-e a').click(function (event) {    event.preventDefault();    var requestData = { term: $(this).text() };    $.get('z.php', requestData, function (data) {        $('#dictionary').html(data);    }).fail(function (jqXHR) {
//异常处理 $('#dictionary').html('发生异常,异常代码:' + jqXHR.status)//status异常代码 .append(jqXHR.responseText); //responseText异常内容 })});

7.调用这个远程数据源

$.getJSON();  参数:一个远程调用数据源的url,以及一个回调函数。

var url = 'http://examples.learningjquery.com/jsonp/g.php';$('#letter-g a').click(function (e) {    e.preventDefault();    $.getJSON(url + '?callback=?', function (data) {        var html = '';        $.each(data, function (entryIndex, entry) {            html += '
'; html += '

' + entry.term + '

'; html += '
' + entry.part + '
'; html += '
'; html += entry.definition; if (entry.quote) { html += '
'; $.each(entry.quote, function (lineIndex, line) { html += '
' + line + '
'; }); if (entry.author) { html += '
' + entry.author + '
'; } html += '
' } html += '
'; }); $('#dictionary').html(html); })})

8.ajax设置参数默认值

$.ajaxSetup();

//由于方法参数过多,设置默认的ajax请求参数$.ajaxSetup({    url: 'a.html',    type: 'POST',    dataType:'html'})$.ajax({    url: 'a.html',//ajaxSetup中已经设置默认值为'a.html',所以,这里可以省略    type: 'GET',//会覆盖掉ajaxSetup默认设置的'POST'    success: function (data) {        $('#dictionary').html(data);    }})

 

 

 

转载于:https://www.cnblogs.com/Med1tator/p/7468573.html

你可能感兴趣的文章
简单工厂模式
查看>>
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思 sql server 2005 2008
查看>>
数据结构--单链表
查看>>
BZOJ 1009: [HNOI2008]GT考试
查看>>
Android的AndroidManifest.xml文件的详解
查看>>
NOIP 2018 游记
查看>>
安卓学习-界面-使用点9图制作可拉升图片
查看>>
JNDI的学习与使用
查看>>
WebPack填坑笔记
查看>>
Spring Batch 批处理框架介绍
查看>>
xp与win7/win10的打印共享设置
查看>>
android(七)、 ContextImpl创建
查看>>
Codeforces Round #253 (Div. 2), problem: (B)【字符串匹配】
查看>>
cocos2dx-让CCLayer随着英雄移动而移动
查看>>
关于Unity中LOD和渲染队列----渲染通道通用指令(一)
查看>>
【Codeforces】Codeforces Round #492 (Div. 2) (Contest 996)
查看>>
1049 - One Way Roads 观察 dfs
查看>>
怎样让 Vim 帮助你阅读和理解文档
查看>>
9718 整数因子分解(必做) 分治法
查看>>
python之路_前端基础之jQuery入门3
查看>>