JQuery通过Ajax发送数据

news/2025/1/15 18:07:50/文章来源:https://www.cnblogs.com/njhwy/p/18403538

JQuery的基础教程

     第六章:通过Ajax发送请求

      html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-3.4.1.js"></script>
</head>
<body>
    <script>
       
       $(document).ready(function(){
          //1.直接获取html文件
           $('#letter-a a').click(function(event){
              event.preventDefault();
              //先隐藏目标元素,然后开始加载,
              //当加载完成时,又通过回调函数以淡出的方式逐渐显示出新生的元素
              $('#dictionary').hide().load('a.html',function(){
                $(this).fadeIn('slow');
              });
            //   $.ajax({
            //     url:"a.html"
            //   })
            //   alert("Loaded");
           });
           //2.获取json格式的文件,并对文件进行解析
           $("#letter-b a").click(function(event){
               event.preventDefault();
               //json规定:所有的对象键以及所有的字符串值,都必须包含在双引号中
               //   $.getJSON()称为类方法,全局方法,
               //第二个参数是当加载完成时调用的函数。
               $.getJSON('b.json',function(data){
                var html="";
                //$.each()不操作jQuery对象,它以数组或对象作为第一个参数,
                //以回调函数作为第二个参数,
                //每次循环要将数组或对象的当前索引和当前索引项作为回调函数的两个参数
                $.each(data,function(entryIndex,entry){
                    html += '<div class="entry">';
                    html += '<h3 class="term">'+entry.term+'</h3>';
                    html += '<div class="entry">'+entry.part+'</div>';
                    html += '<div class="definition">';
                    html += entry.definition;
                    if(entry.quote){
                            html+='<div class="quote">';
                            $.each(entry.quote,function(lineIndex,line){
                                html+='<div class="quote-line">'+line+'</div>';
                            });
                            if(entry.author){
                            html+='<div class="quote-author">'+entry.author+'</div>';
                    }
                    html += '</div>';
                    }
                   
                    html += '</div>';
                    html += '</div>';

                });
                $('#dictionary').html(html);
               })
               //$.get()和.load()等快捷的Ajax方法并没有提供错误的回调函数
               //可以使用全局的.ajaxError()方法,还可以利用JQuery的延迟对象系统
               .fail(function(jqXHR){
                //status包含了服务器返回的状态码:
                //  400:  请求语法错误
                //  401: 为授权
                //  403:  禁止访问
                //  404:  未发现请求的URL
                //  500:  服务器内部的错误
                  $("#dictionary").html('An error occurred:'+jqXHR.status).append(jqXHR.responseText);
               })
               
               ;  
           });
           //加载.js文件
           $('#letter-c a').click(function(){
                event.preventDefault();
                $.getScript('c.js');
           });
           //加载XML文档
           $('#letter-d a').click(function(){
            event.preventDefault();
            $.get('d.xml',function(data){
                $('#dictionary').empty();
                    var html='<div class="entry">';
                    $(data).find("entry").each(function(){
                        var $entry=$(this);
                        var html='<div class="entry">';
                        html+='<h3 class="term">'+$entry.attr('term')+'</h3>';
                        html+='<div class="part">'+$entry.attr('part')+'</div>';
                        html+='<div class="definition">';
                        html+=$entry.find('definition').text();
                        var $quote=$entry.find('quote');
                        if($quote.length){
                            html+='<div class="quote">';
                                $quote.find('line').each(function(){
                                    html+='<div class="quote-line">';
                                    html+=$(this).text()+"</div>";
                                });
                                if($quote.attr('author')){
                                    html+='<div class="quote-author">';
                                    html+=$quote.attr('author')+'</div>';
                                }
                                html+='</div>';
                        }
                        html+='</div>';
                        html+='</div>';
                        $('#dictionary').append($(html));
              });
            });
         });
            //.ajaxStart()和.ajaxStop()事件
            //加载反馈系统就位,a的.load()和b的.getJSON()都可以导致反馈操作发生
            var $loading=$('<div id="loading">Loading</div>').insertBefore('#dictionary');
            $(document).ajaxStart(function(){
                $loading.show();
            }).ajaxStop(function(){
                $loading.hide();
            })
            //看起来一切正常,但是在现有代码的基础上单击没有结果
            //因为在单击时,词条还没有被添加到文档中,
            //通过Ajax生成页面内容时常见的问题
            $('h3.term').click(function(){
                $(this).siblings('.definition').slideToggle();
            });
            //值得推荐的做法:事件委托
            //.on()告诉浏览器密切关注页面上发生的任何单击事件。
            //当被点击的元素与h3.term选择符匹配时,才会执行事件处理程序
            $('body').on('click','h3.term',function(){
                $(this).siblings('.definition').slideToggle();
            })
        })
    </script>
      <h1>The Devil's Dictionary</h1>
      <span>by Ambrose Bierce</span>
      <br>
      <br>
      <br>
      <div class="letters" style="float: left;width:200px">
        <div class="letter" id="letter-a">
            <h3><a href="entries-a.html">A</a></h3>
        </div>
        <div class="letter" id="letter-b">
            <h3><a href="entries-b.html">B</a></h3>
        </div>
        <div class="letter" id="letter-c">
            <h3><a href="entries-c.html">C</a></h3>
        </div>
        <div class="letter" id="letter-d">
            <h3><a href="entries-d.html">D</a></h3>
        </div>
      </div>
      <div id="dictionary"  style="float: left; width:800px">      
      </div>
</body>
</html>
       json文件
[
    {
        "term":"BACCHUS",
        "part":"n.",
        "definition":"A convenient deity invented by the....",
        "quote":[
            "Is public worship,then,a sin,",
            "That for devotions paid to Bacchus",
            "The licitors dare to run us in,",
            "And resolutely thump andwhach us?"
        ],
        "author":"Jorace"
    },
    {
        "term":"BEARD",
        "part":"v.t.",
        "definition":"To speak of a man as you find him when..."
    },
    {
        "term":"BEARD",
        "part":"n.",
        "definition":"The hair that is commonly cut off by..."
    }
]
 
     xml文件
<?xml version="1.0" encoding='UTF-8'?>
<entries>
   <entry term='DEFAME' part='v.t.'>
      <definition>
         To lie about another. To tell the truth about another
      </definition>
   </entry>
    <entry term='DEFENCELESS' part='adj.'>
      <definition>
        Unable to attack
      </definition>
   </entry>
    <entry term='DELUSION' part='n.'>
      <definition>
          The father of a most respectable family.
          comprising Enthusiasm,Affection,Self-denial,Faith,Hope
          ,Charity and many other goodly sons and daughters
      </definition>
      <quote author="Munfrey Mappel">
          <line>
            All hail,Delusion! Were it not for three
          </line>
          <line>
            The world turned topsy-turvy we should see;
          </line>
          <line>
             For Vice, respectable with cleanly fancies
          </line>
          <line>
            Would fiy abandoned Virtue's gross advances.
          </line>
      </quote>
   </entry>
</entries>
 
           js文件
var entries=[
    {
        "term":"CALAMITY",
        "part":"n.",
        "definition":"A more than commonly plain and...."
    },
    {
        "term":"CANNIBAL",
        "part":"n.",
        "definition":"A gastronome of the old school who...."
    }
    ,
    {
        "term":"CHILDHOOD",
        "part":"n.",
        "definition":"The period of human life intermediate...."
    }
];
var html="";
$.each(entries,function(){
     html+='<div class="entry">';
     html+='<h3 class="term">'+this.term+'</h3>';
     html+='<div class="part">'+this.part+'</div>';
     html+='<div class="definition">'+this.definition+'</div>';
     html+='</div>';
});
$('#dictionary').html(html);
 
 
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794201.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

格路计数

前言 完全借鉴于 洛谷日报 前提条件 在一个网格图上, 每一次可以从 \((x,y)\) 走到 \((x+1,y-1)\) 或者 \((x+1,y-1)\) 限制是一条直线 \(y=k\) 题外话 我们其实可以发现这和每一次可以从 \((x,y)\) 走到 \((x+1,y)\) 或者 \((x, y+1)\) 限制是一条 \(45\)的斜线 \(y=x+k\) 是等…

9.2-9.8 总结

zhicheng123456做题 因为联考众多,所以说只有不多的做题。主要得知了两个结论:找树剖到根的轻链(动态)的方法和把线段(均匀随机分界点)分为 \(n\) 段的 \(k\) 短值的计算。 联考:https://www.cnblogs.com/british-union/p/liankao.html 还是时常在简单的东西上失败,但是…

第一章预习作业

第一周预习报告 学习内容《WindowsC/C++加密解密实战》第1,2章 第一章概念复习 第二章主要在Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上),如果默认不是,参考下面脚本。 AI对学习内容的总结 要求 让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可使…

9月第一周漏洞学习

蜂信物联(FastBee)物联网平台download存在任意文件下载漏洞 漏洞描述 FastBee是一款开源物联网平台,致力于为全球开发者提供稳定、搞笑的物联网解决方案。FastBee在download接口中存在任意文件下载漏洞,可能导致敏感信息泄露、数据盗窃及其他安全风险,从而对系统和用户造成…

AtCoder Beginner Contest 252 A~G 题解

前言这是我第一次写7题(A~G)的ABC题解,若有写得不好或者不到位的地方请多多指教,我将万分感激,感谢大家的支持!A - ASCII code 题目大意 给定正整数\(N\),输出ASCII码是\(N\)的字母。 \(97\le N\le 122\) 输入格式 \(N\) 输出格式 输出ASCII码是\(N\)的字母。 分析 注意…

苯乙烯

周线 日线: 60分钟: 短线看能否走出下跌五浪吧:观望

AtCoder Beginner Contest 205 A~E 题解

A - kcal 题目大意 我们有一种每\(100\)毫升含有\(A\)千卡热量的饮料。\(B\)毫升的这种饮料含有多少千卡热量? \(0\le A, B\le 1000\) 输入格式 \(A~B\) 输出格式 输出\(B\)毫升这种饮料包含的的千卡数。最大允许浮点数精度误差\(10^{-6}\)。 样例\(A\) \(B\) 输出\(45\) \(20…

AtCoder Beginner Contest 196 A~E 题解

A - Difference Max 题目大意 给定四个整数\(a,b,c\)和\(d\)。 我们要选择两个整数\(x\)和\(y\)(\(a\le x\le b\);\(c\le y\le d\))。输出最大的\(x-y\)。 \(-100\le a\le b\le 100\) \(-100\le c\le d\le 100\) 输入格式 \(a~~b\) \(c~~d\) 输出格式 输出最大的\(x-y\)。 样…

AtCoder Beginner Contest 173 A~D 题解

A - Payment 题目大意 如果使用价值\(1000\)元的纸币(假设有)支付\(N\)元,服务员会找多少钱? \(1\le N\le 10000\) 输入格式 \(N\) 输出格式 一行,即服务员找的钱数。 样例输入 输出1900 1003000 0分析 特判: 如果\(N\)除以\(1000\)能整除,那么不需要找钱,输出\(0\); …

AtCoder Beginner Contest 188 A~D 题解

A - Three-Point Shot 题目大意 有两个球队,分别得到\(X\)分和\(Y\)分,问得分较少的球队能否在获得三分后超越对方。 \(0\le X,Y\le 100\) \(X \ne Y\) \(X\)和\(Y\)都是整数。 输入格式 \(X~Y\) 输出格式 如果能,输出Yes;否则,输出No。 样例X Y 输出3 5 Yes分析 这个不用…

Eclipse安装包下载慢解决方法

最近开始学习Java,使用经典的Eclipse IDE,结果发现下载太慢……问题分析Eclipse的下载依赖于其他镜像,(在我这里)默认为朝鲜的镜像(可能在不同电脑中默认不同):点击Select Another Mirror:选择中国的镜像:

程序无法启动,因为您的计算机缺少msvcr71.dll。

背景 打开CrystalTile2这个软件出现此提示。 解决 有很多解决办法,最简单粗暴也是见效最快的就是直接从网上下载dll文件放到对应位置。 下载 https://msvcr71.dll-box.com/zh/自己存了一份,以免网址失效(虽然按道理来说一般不会失效)。 https://www.123pan.com/s/EhW3jv-IW…