探索 jQuery:简化前端开发的利器

1.jquery简介

        在现代的网页开发中,JavaScript 扮演着至关重要的角色,它不仅能够实现与用户的交互,还可以使页面更加动态和吸引人。然而,纯粹的 JavaScript 编码往往繁琐复杂,为了简化前端开发的过程,诞生了许多优秀的 JavaScript 库和框架,其中最著名的之一便是 jQuery。

        jQuery 是一个快速、简洁的 JavaScript 库,它简化了许多常见的任务,如 HTML 文档遍历和操作、事件处理、动画效果和 Ajax 操作等。由 John Resig 在 2006 年创建,jQuery 的设计目标是使 JavaScript 更加简单和易于使用。如今,jQuery 已成为前端开发的事实标准之一,被广泛应用于各种网站和 Web 应用程序中。简而言之,jquery就是一个工具库。

2.jquery下载

        下载网址:Download jQuery | jQuery或者jQuery API 中文文档 | jQuery中文网

        下载版本分为生产版本和开发版本,二者的区别在于,生产版本是压缩过的体积小,以min.js为后缀,而开发版本没有压缩,体积大,但是其中的源码可以看懂。

        下载到本地后,将该文件放在VS code的工作目录下,方便引入。

3.引入jquery

        在head中使用script结合src来引入

        

        测试:在script中执行console.log($),打印函数则引入成功。

        文档加载完毕事件:$(function(){ "加载完毕"}),即在使用jquery时,将script写在$()中,保证文档加载完毕,可以获取到元素。

4.jquery使用三部曲

4.1  获取元素

        $("选择器")         返回的是jquery对象

        jquery转js        get(0)

        js转jquery        $(js对象)

        $(this)              将js转jquery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
        引入jquery
        在head中使用script结合src
     -->
    <script src="jquery-3.7.1.js"></script>
    <script>
        // 文档加载完毕事件  $(function(){ "加载完毕"})
        // 即在使用jquery时,将script写在$()中
        // 保证文档加载完毕,可以获取到元素

        // 理论上script可以写在任何位置,但是从上往下加载时还没有标签就开始获取元素,是找不到的
        // 所以当script写在头部时,使用$(function(){ "加载完毕"}),最好的方法就是每次使用jquery时
        // 都将其写在$(function(){})中

        $(function(){
        let con = $(".container");
        con.each(function(index,item){
            console.log(index, item);
        })
    })
    </script>
</head>
<body>
    
    <div class="container">
        <p><span>span1</span><span>span2</span><span>span3</span></p>
        <p><span>span1</span><span>span2</span><span>span3</span></p>
        <p><span>span1</span><span>span2</span><span>span3</span></p>
    </div>
    <script>
        // js工具库下载:https://www.jquery123.com/,有生产版本和开发版本
        // 生产版本是压缩过的,体积小, .min.js
        // 开发版本未压缩,体积大,但是可以看源码
        // console.log($);
    </script>
    <script>
        // jquery获取元素 $("选择器"),返回的是jquery对象
        // jquery转js get(0)
        // js转jquery $(js对象)
        let con = $(".container");
        // console.log(con);
        // let con_js = con.get(0);
        // console.log(con_js);
        // let con_jq = $(con_js);
        // console.log(con_jq);

        // 遍历 each  function(index,item){ $(item)}
        con.each(function(index,item){
           console.log(index, item);
        })
        // 文档加载完毕事件  $(function(){ "加载完毕"})
        // 即在使用jquery时,将script写在$()中
        // 保证文档加载完毕,可以获取到元素
    </script>
</body>
</html>

4.2  绑定事件

        js所有事件--事件名不带on

        $(this).click(function(e){  })

        $(this).on("事件名", 函数名)

        $(this).off("事件名", 函数名)        不带函数名,则关闭所有事件

        $(this).one("事件名", 函数名)        只执行一次

4.3  修改、获取元素

        内容:text()        html()可以识别标签        这两个如果没有实参就是获取,有实参就是设置

        属性:普通属性:attr("属性名")获取        attr("属性名","属性值")设置

                  类名属性:hasClass()是否有类名        addClass()添加类名

                                    removeClass()删除类名        toggleClass()有就删除没有就添加

        样式css:css("属性名")--获取        css("属性名","属性值")--获取设置

                        css({"属性名":"属性值", "属性名":"属性值"})--设置多个

       动画:显示与隐藏:显示show  隐藏hide  切换toggle

                自定义动画:animate({  }. time, function(){  })

<!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.7.1.js"></script>
</head>
<body>
    <div class="container">
        <span>span1</span>
        <span>span2</span>
        <span>span3</span>
    </div>
    <a class="a0" id="aa" title="aa" href=""></a>
    <script>
        // let con = $(".container").text();
        // console.log(con);
        // let con_ht = $(".container").html();
        // console.log(con_ht);

        // let con = $(".container").text("span");
        // let con_ht = $(".container").html('<a href="">百度</a>');

        // 普通属性 attr("属性名")获取  attr("属性名","属性值")设置
        // let id = $("a").attr("id");
        // console.log(id);
        // $("a").attr("id","a0");
        // let i_d = $("a").attr("id");
        // console.log(i_d);

        // 类名属性  hasClass()是否有类名  addClass()添加类名 
        // removeClass()删除类名  toggleClass()有就删除没有就添加
        console.log($("a").hasClass("a0"));
        $("a").addClass("aa");
        console.log($("a").hasClass("aa"));
        $("a").removeClass("a0");
        console.log($("a").hasClass("a0"));
        $("a").toggleClass("a0");
        console.log($("a").hasClass("a0"));
    </script>
</body>
</html>

4.4 元素相关

        相关元素:子children()        父parent()  

                          上一个prev()        下一个next()        同级别其他的siblings()

        创建与删除:A.appendTo(B)返回A,A是创建内容

                             A.append(B)返回A,B是创建内容

                             目标元素.remove()移除

                             目标元素.empty()删除目标元素所有子元素

<!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.7.1.js"></script>
</head>
<body>
    <div class="container">
        <p>p1</p>
        <p>p2</p>
        <p>p3</p>
        <p>p4</p>
        <p>p5</p>
    </div>
    <script>
        // 子children() 父parent()  上一个prev() 下一个next() 同级别其他的siblings()
        let parent = $(".container").parent();
        console.log(parent);
        let children = $(".container").children();
        console.log(children);
        let second = $("p:nth-of-type(2)");
        console.log(second.prev());
        console.log(second.next());
        console.log(second.siblings());

        // 创建与删除
        // A.appendTo(B)返回A,A是创建内容
        // A.append(B)返回A,B是创建内容
        // 目标元素.remove()移除
        // 目标元素.empty()删除目标元素所有子元素
        let create = $(`
        <a href="">百度</a>
        <span>span1</span>
        `).appendTo(".container");
        create.remove();
        $(".container").empty();


        // https://httpbin.org/get
    </script>
</body>
</html>

5.jquery使用ajax与服务器交互

        使用ajax与服务器进行交互,ajax({url,method,data,success})

        url服务器地址,method有get和post,data为数据,success成功

        get请求数据在args中

<!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.7.1.js"></script>
</head>
<body>
    <div class="items">
        <div class="con">

        </div>
        <button>get请求</button><button>post请求</button>
    </div>

    <script>
        // 使用ajax与服务器进行交互,ajax({url,method,data,success})
        $("button:nth-of-type(1)").click(function(){
            $.ajax({
                // 测试服务器地址
                url:"https://httpbin.org/get",
                method:"get",
                data:{
                    "name": "zyj",
                    "age": 20
                },
                success:function(res){
                    console.log("请求成功",res.args);
                    $(".con").append(`
                        <div class=".container">
                            <p>
                                <span>姓名</span><span>${res.args.name}</span>
                            </p>
                            <p>
                                <span>年纪</span><span>${res.args.age}</span>
                            </p>
                        </div>
                    `)
                }
            })
        })
        // post请求数据在form中
        $("button:nth-of-type(2)").click(function(){
            $.ajax({
                url:"https://httpbin.org/post",
                method:"post",
                data:{
                    "n": "zyj",
                    "a": 20
                },
                success:function(res){
                    console.log("请求成功",res.form);
                    $(".con").append(`
                        <div class=".container">
                            <p>
                                <span>n</span><span>${res.form.n}</span>
                            </p>
                            <p>
                                <span>a</span><span>${res.form.a}</span>
                            </p>
                        </div>
                    `)
                }
            })
        })
    </script>
</body>
</html>

小结

        jQuery 的出现极大地简化了前端开发的工作,使得开发者可以更加专注于实现功能和用户体验,而不必过多关注浏览器兼容性和复杂的 JavaScript 编码。虽然现在有许多新兴的 JavaScript 框架和库,但 jQuery 仍然是许多开发者的首选,它的简单易用性和强大的功能依然不可替代。因此,掌握 jQuery 将会为你的前端开发之路带来极大的便利和效率提升。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值