前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三、jQuery中的Ajax

三、jQuery中的Ajax

作者头像
Dreamy.TZK
发布2020-08-24 11:50:40
3.8K0
发布2020-08-24 11:50:40
举报
文章被收录于专栏:小康的自留地小康的自留地

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 自动将返回结果写入到目标元素中
代码语言:javascript
复制
$('.btn').click(function () {
    $('button').load('data/server2.txt', { name: '123' }, function () {
        console.log('success');
    })
})

此方法会自动将请求结果写入到调用元素中。

34b5fba5-8ec9-41c8-b9d2-c6561d109525
34b5fba5-8ec9-41c8-b9d2-c6561d109525

get与post方法

.get(url,[data],[callback],[type])与.post(url,[data],[callback],[type])

  • url 请求的地址
  • data 请求的数据。键值对形式。
  • callback 请求完成时的回调函数。会将请求数据的结果作为回调函数的参数传入。
  • type 设置返回数据内容的格式。值为xml、html、script、json、text和_default。
代码语言:javascript
复制
$('.btn').click(function () {
    $.get('data/server1.json', { name: '666' }, function (backData) {
        console.log(backData);
    }, 'json')
})
e764e89f-21e6-4703-a0f2-bbb9d5a00bb9
e764e89f-21e6-4703-a0f2-bbb9d5a00bb9

ajax方法

代码语言:javascript
复制
$.ajax('data/server1.json', {
    // 请求的类型
    type: 'get',
    // 请求的数据
    data: {
        name: '666'
    },
    // 服务器返回的数据类型
    dataType: 'json',
    // 响应成功时的回调函数
    success: function (backData) {
        console.log(backData);
    }
})
e764e89f-21e6-4703-a0f2-bbb9d5a00bb9
e764e89f-21e6-4703-a0f2-bbb9d5a00bb9

getScript方法

$.getScript(url,[backcall])

代码语言:javascript
复制
$.getScript('data/server3.js', function () {
    console.log('加载成功了');
})
065a2fc2-aaa5-4ac5-a7d4-41ab6d9d75dd
065a2fc2-aaa5-4ac5-a7d4-41ab6d9d75dd

获取成功后会自动调用获取的脚本js代码。 回调函数会返回脚本的字符串类型,可以通过eval函数进行调用。

getJSON

$.getJSON(url,[backcall])

代码语言:javascript
复制
$('.btn').click(function () {
    $.getJSON('data/server1.json', function (data) {
        console.log('加载成功了,返回数据为:', data);
    })
})
b852e58c-2af3-4d02-8d1b-f91ce18308db
b852e58c-2af3-4d02-8d1b-f91ce18308db

请求方式为GET。

省市联动

代码语言:javascript
复制
<!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>

搜索框提示案例

代码语言:javascript
复制
<!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>
2bd50f8e-f079-43ca-9f01-05a4b56598ef
2bd50f8e-f079-43ca-9f01-05a4b56598ef

异步提交表单的步骤

  1. 获取表单组件的内容
  2. 根据表单数据构建请求数据
  3. 通过Ajax异步提交

表单序列化

  1. serialize()方法 将表单组件对应的数据值序列化为指定格式的字符串内容。
  2. serializeArray()方法 将表单组件对应的数据值序列化为JSON格式的数据内容。

表情需对需要获取的值设置name属性

代码语言:javascript
复制
<!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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JQuery中的Ajax
  • load方法
  • get与post方法
  • ajax方法
  • getScript方法
  • getJSON
  • 省市联动
  • 搜索框提示案例
  • 异步提交表单的步骤
  • 表单序列化
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档