Jquery属性和元素操作,ajax

jquery属性和元素操作

jquery 操作属性
attr("属性名") 拿到属性值或者键值对应设置属性

attr("属性名","要写入的值") # 属性写入

removeAttr("属性名")  从所有匹配的元素中移除指定的属性、



// 写入属性

$(‘ul a‘).attr(‘href‘,href);

// 移除属性

$(‘a‘).eq(2).removeAttr(‘href‘);

// 获取元素文本

jquery 操作元素

text() 设置或返回所选元素的文本内容

html() 设置或返回所选元素的内容(包括HTML标记)

val() 设置或返回表单字段的值

# 实例

 #  获取元素文本

console.log($(".div1").text());

 // 获取元素内容  html都会打印出来

 console.log($(".div1").html());

 // val  一般会用在获取表单的值

 console.log($(".div1").val());

 

# 写个复杂的获得提交的账号密码信息

 $("#btn").click(function () {

    // 获取到账号的值

    var user = $(‘#user‘).val();

    var pwd = $(‘#pwd‘).val();

    // 使用js代码进行校验等操作

});

jquery 添加新的html内容

append() 在备选元素的结尾插入内容,最尾部添加内容

prepend()在备选元素的开头插入内容,最开头处添加

after()  在备选元素之后插入内容,

before() 在备选元素之前插入内容

# 实例

$(‘.div1‘).append(‘<h1>python</h1>‘);

// 在该元素开始的位置添加内容 在元素内部

$(‘.div1‘).prepend(‘<h1>python</h1>‘);

// 元素之后添加 在所选元素之外

$(‘.div1‘).after(‘<div>这是在元素之后添加</div>‘);

// 元素之前添加 ,在所选元素之外

$(‘.div1‘).before(‘<div>元素之前添加</div>‘);

删除 元素/内容

remove() 删除被选元素(及其子元素) 相当于彻底清除

empty()  从被选元素中删除子元素     相当于清空下面的子元素

# 实例

// 删除元素  选中的节点和子节点一并被删掉  移除

$(‘ul‘).remove();

// ul 在页面上仍然存在,但是ul下面的子节点全部被删掉 子元素置空

$(‘ul‘).empty();

ajax 

ajax 的技术目的是让js发送http请求,与后台进行通信

    获取数据源和信息,ajax技术原理是实例化xmlhttp对象

    使用此对象与后台通信,ajax通信过程不会影响后续js代码的执行

    从而实现异步

同步与异步,

    同步即指一件事干完之后再干下一件事,

    异步,干一件事的同事进行另外一件事

局部刷新和无刷新

ajax可以实现局部刷新,也叫做无刷新,无刷新值得是整个页面不刷新,只是局部刷新

ajax可以自己发送http请求,不用通过浏览器的地址栏,所以页面整体不会刷新

ajax获取到后台数据,更新页面显示数据的部分,就做到了页面局部刷新

同源策略

ajax 请求的页面或资源只能是同一个域下的资源,不能是其他域的资源

这是在设计ajax时基于安全的考虑,



ajax使用方法

常用参数

1 url请求地址

2 type 请求方式 默认是GET 常用的还有POST

3 dataType 设置返回的数据格式,常用的事json格式,也可以设置为html

4 data 设置为发送给服务器的数据

5 success 设置请求成功后的回调函数

6 error 设置请求失败后的回调函数

7 async 设置是否异步,默认 true 表示异步



主要涉及jquery.ajax

其实就相当于从页面上发送http请求,

应用实例

   加密传输数据, submit提交表单是不会进行加密的

   先通过js代码加密,然后通过ajax发送请求。

ajax实例

// JS

// 页面加载完成之后执行的的代码

$(function () {

    // ajax请求

    //给前端页面上的提交按钮绑定方法

    $(‘#btn‘).click(function () {

        // 先获取账号

        var acc = $(‘#user‘).val();

        // 获取密码

        var pwd = $(‘#pwd‘).val();

        之后进行加密方法(略过)  发送ajax请求

        花括号括起来的事一个js对象

        $.ajax({

            url: "/login",  # 发送请求目标地址

            data:{          # 如果有要求的数据就需要写

                ‘user‘:acc,

                ‘pwd‘:pwd

            },

            type:‘POST‘,    # 也可以使用method关键字传

            dataType:‘json‘,  // 期望后台返回的数据类型,按照json的格式解析浏览器返回的数据

            # 如果对方是可以允许跨域请求的接口,返回的类型要设置成jsonp

            success:function (data) {

                # data是后台返回的数据,通过一个形参传入匿名函数进行逻辑处理

        // 请求成功的时候 success之后的函数会被触发  请求成功之后,后台返回数据会作为参数传入到

                // success 后的回调函数中

                //data.code // 就相当于取返回结果的json中的code字段

                if (data.code == "1"){

                    alert(data.msg);

                }else{

                    // this代表当前节点位置,当前绑定按钮,即按钮next的节点,

                    // append  在元素内部添加内容 达到异步发送请求返回结果给页面

                    $(this).next().append(data.msg);

                    alert(data.msg); // 编写的时候可以直接使用alert弹框来校验功能

                }

            },

            error:function () {

        //失败的话调用此处的回调函数,与下面的done跟fail一样

            }



        })

上面写法是方式1, 接着看方式2

    ajax在发送请求的时候除了传递参数之外会自动生成两个参数传递过去

    1个是回调函数,另一个是_=后面跟的一串数字的数据

    如果目标后面是可以接受跨域请求的话,会将返回的数据与回电函数名称,字符串数据打包成一个jsonp格式的数据返回

    # 如果需要跨域请求的话 dataType需要携程jsonp

    下面来看第二种写法

   $.ajax({

        url: ‘/login‘,

        type: ‘POST‘,

        data: {

            ‘user‘: acc,

            ‘pwd‘: pwd

        },

        dataType: ‘json‘

    }).done(function (data) {  // 成功会进入done方法

        if (data.code == "1") {

            alert(data.msg)

        } else {

            $(this).next().append(data.msg)

        }

    }).fail(function () {  // 失败会进入fail方法

        alert(‘请求失败‘)

    })



});

    看一个案例

$.ajax({

    url: ‘pro_list‘,

    method: ‘get‘,

    dataType: ‘json‘,

}).done(function (data) {

    var pro = $(‘#pro‘);

    var res = data.data;

    for (i in res) {

        // res结构为 列表,内含对象

        // 直接打印i的话是下标

        console.log(res[i]); // 拿到的事对象

        var option = ‘<option value=‘ + res[i].id + ‘>‘ + res[i].title + ‘</option>‘;

        pro.append(option)

    }

    console.log(data);

    // change 事件 监测元素值是否发生变化

    pro.change(function () {

        // 往接口列表发送ajax请求

        // 参数 pro_id

        var pro_id = pro.val();

        console.log(pro_id);

        $.ajax({

            url: ‘/interface‘,

            data: {

                "pro_id": pro_id

            },

            method: ‘POST‘,

            dataType: ‘json‘

        }).done(function (data) {

            // 首先获取到目标下拉框的元素

            var interface = $(‘#interface‘);

            // 成功的话就往option里面进行添加

            if (data.code === "1") {

                var res = data.data;

                // 在添加到下拉框之间先清空

                interface.empty();

                for (i in res) {

                    var option = ‘<option value=>‘ + res[i].name + ‘</option>‘;

                    interface.append(option)

                }

            }

        })

    })



});

Jquery属性和元素操作,ajax

相关推荐