将AJAX请求手动封装到JQuery中

    注意事项1.参数为字符串时是封装了getElementById();2.只封装了数据交换格式为JSON格式

jQuery中封装了如何获取元素,元素的onclick,onchange,value属性,页面加载完毕执行函数,

将AJAX编程(1.获取XMLHttpRequest对象2.注册函数3.开启连接4.发送请求),参数在前端封装为JSON

function jQuery(args){
        //通过id获取元素
         //如果参数是个字符串,返回一个元素
        if (typeof args == "string") {
            //只封装一个id拿元素
            if (args.charAt(0) == "#"){
                var eleid = args.substring(1)
                //声明为全局变量
                //每调用一次jQuery 函数,这个ele是唯一的
                element = document.getElementById(eleid);
                //返回jQuery对象,才能使用后面的方法
                return new jQuery
            }
        }
         //如果参数是个函数默认浏览器页面加载完毕执行
        if (typeof args == "function"){
            window.onload = args
        }
        //封装jQuery对象的属性为方法,参数为一个函数
         //这个元素的onclick属性
         this.click= function (fun){
            element.onclick = fun
         }

         //这个元素的onchange属性
        this.change= function (fun){
             element.onchange = fun
         }

         //这个元素的value属性
         this.val= function (){
             return (element.value)
         }

         //这个元素的innerhtml属性
         this.html= function (htmlyext){
             element.innerHTML = htmlyext
         }
        /*封装AJAX
        * 1.请求方式
        * 2.url
        * 3.ansyc
        * 4.date
        * 5.success(拿到JSON后如何显示通过HTML代码)
        * */
        //静态方法ajax
         jQuery.ajax = function (jsonargs){
            //1
             var xhr = new XMLHttpRequest();
             //2
           xhr.onreadystatechange = function (){
               if (xhr.readyState == 4) {
                   if (xhr.status == 200) {
                       //拿到json对象
                       var jsonobj = JSON.parse(this.responseText)
                       jsonargs.success(jsonobj)
                   }
               }
           }
           //3
             if (jsonargs.type == "GET"){
                 xhr.open("GET",jsonargs.url + "?" + jsonargs.date,jsonargs.async)
                 //4
                 xhr.send()
             }

             if (jsonargs.type == "POST"){
                 xhr.open("POST",jsonargs.url ,jsonargs.async)
                 //4
                 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
                 xhr.send(jsonargs.date)
             }

         }
    }
     //js中没有new实例,静态方法也失效
     new jQuery()
     $ = jQuery

HTML代码:

type:请求方式,url:请求路径,async:是否支持异步,date:name=value&name=value...,succes:后端发送的JSON如何显示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试封装的jQuery</title>
</head>
<body>
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
    $(function (){
        $("#btntest").click(function (){
            <--!发送AJAX请求,参数封装为一个JSON对象-->
            $.ajax({
                /*type:"GET",*/
                type:"POST",
                url:"/ajax/test/servlet05",
                async:true,
                date:"username="+$("#username").val(),
                success:function (jsonobj){
                    $("#mydiv").html(jsonobj.username)
                }
                }
            )
            }
        )
    })

</script>
<input type="text" id = "username"/><br>
<input type="button" id = "btntest" value = "发送请求"/><br>
<div id = "mydiv"></div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值