jQuery、Ajax和JSON笔记

jQuery

文本框失去焦点,给出提示信息

function fn(e) {
	if ($(this).val() === ""){
		$(this).css('border','2px solid red')
		$(this).val(e.data);
	}else {
		$(this).val('yes');
	}
}

function a() {
	$("input:last").focusout('慕课网', fn)
}
a();

监听input值的改变

// target[1..3]为监听的控件
    // change触发后,改变#result中的文本
    $('.target1').change(function(e) {
        $("#result").html(e.target.value)
    });

    //监听select:
    $(".target2").change(function(e) {
        $("#result").html(e.target.value)
    })

     //监听textarea:
    $(".target3").change(function(e) {
        $("#result").html(e.target.value)
    })

this和e.target

this指触发事件的元素:js中事件是会冒泡的,所以this是可以变化的,无论你鼠标点击在什么位置,触发事件的元素都是ul,所以this指ul

**event.target不会变化,它永远是直接接受事件的目标DOM元素;**如果你点击到了ul内部的li,则e.target指的就是li,但是如果你点击的是ul其他的非li部分,则this和e.target是一样的。

如果不是通过冒泡产生的事件,则this和e.target没有区别

this和event.target都是dom对象:如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和 ( t h i s ) 的 使 用 、 e v e n t . t a r g e t 和 (this)的使用、event.target和 (this)使event.target(event.target)的使用;

元素的隐藏和显示

//点击button
//执行0.3s隐藏
//执行0.6s显示
$("button").click(function() {
	$("#a1").hide("fast").show("slow")
    $("#a1").toggle("fast")// 如果是隐藏的就显示,如果是显示的就隐藏
});

Ajax

XMLHttpRequest:可以不刷新整个页面使前台和服务器异步交换数据。

异步刷新主要有三个部分:

  • HTML页面
  • 使用XMLHttpRequest和Web服务器进行数据异步交换
  • 使用JS操作DOM,实现动态局部刷新

创建XHR对象: var requeat = new XMLHttpRequest()

发送请求:

  • request.open(method, url, [async]); // 默认async=true
  • request.setRequestHeader(“填写头信息”);//如果需要
  • request.send([body信息]);// POST请求需要填写参数

获取响应

request.onreadystatechange = function(){
	if(request.readState === 4 && request.status === 200){
		// 响应返回成功
	}
}
  • .responseTest:获得字符串形式的响应数据
  • .responseXML:获得XML形式的响应数据
  • .status和.statusText:以数字和文本形式返回HTTP状态码
  • getAllResponseHeader:获取所有的响应报头
  • getResponseHeader(‘xx’):查询响应中某个字段的值

JSON

语法:json数组在[]中书写,对象在{}中书写,布尔值和null直接书写,其余类型在“”中书写。

使用 var jsonobj = JSON.parse({‘data’ : ‘aaa’}); 来解析json

json校验工具

jQuery中的Ajax

  • jQuery.ajax([settings])
  • type : 类型,“POST”或“GET”,默认为“GET”
  • url : 发送请求的地址
  • data : 是一个对象,连同请求发送到服务器的数据
  • dataType : 预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断。一般采用json, “json”
  • success : 是一个方法,请求成功后的回调函数。传入返回数据,以及包含成功代码的字符串。只要response状态码是200就代表成功
  • error : 一个方法,请求失败时调用此函数。传入XMLHttpRequest对象
$(document).ready(function(){
    $("#发送请求").click(function(){
        $.ajax({
            type : "GET",
            url : "url?param=" + $("#控件").val(),
            dataType : "json",
            //此时data已经完成解析,为json数据
            success : function(data){
                alert(data.name + data.password);
            },
            //请求失败的回调函数有一个XMLHttpRequest对象参数,能拿到HTTP响应
            error : function(XHR){
                alert("状态码" + XHR.status);
            },
            data : {
                //jQuery中属性名不需要加""
                name : $("#控件").val(),
                password : $("#控件").val()
            }
        })
    })
})
常用语法说明
$(selector).load(url,[data],[callback])请求加载服务器中数据
$.get(url,[callback])发起GET请求
$.post(url,[jsondata],[callback])发起POST请求
$(selector).serialize()将内容序列化,可以用于url传多个相同参数时使用,仅属于form提交的数据转化
$.param(obj)对任意对象进行序列化,用于组成URL传参
$.ajaxSetup({property : data})用于设置全局Ajax默认项
$(selector).ajaxStart(function())在Ajax请求发出前触发函数
$(selector).ajaxStop(function())在Ajax请求发出后触发函数
$.isEmptyObject(obj)判断obj是否为空
$.contains(node_a, node_b)判断node_a是否包含node_b
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值