首页 前端知识 jQuery干货

jQuery干货

2025-03-19 11:03:45 前端知识 前端哥 433 760 我要收藏

1.简介:jQuery库可以通过一行简单的标记被添加到网页中
    2.需要具备的基础知识:html、css、javascript
    3.jQuery是什么:javascript函数库(js框架),安全、效率、简洁。有以下功能:html元素选取及操作、css操作、html事件函数、js特效和动画、html DOM遍历和修改、ajax、大量插件
    4.使用理由:最流行基于dom操作的js框架,提供大量的扩展
    5.官网地址:https://jquery.com/
    6.下载版本:生产版本-用于实际网站,已被精简和压缩;开发版本-用于测试和开发,代码可读
    7.下载地址:https://jquery.com/download/
    8.简单语法-作用:选择HTML元素,执行actions(操作)
    9.简单语法-基础语法:$(selector).action() 说明:$定义jquery、selector-选择符查询和查找HTML元素、action执行对元素的操作
    10.简单语法-实例
        <script>
            $(this).hide() - 隐藏当前元素
            $("p").hide()  - 隐藏所有<p>元素 
            $("#test").hide() - 隐藏所有id=test的元素
        <script>
    11.简单语法-文档就绪事件:为了防止文档在完全加载就绪之前运行jquery代码,如果文档没有完全加载就运行函数,可能出错
        方法1:$(document).ready(function(){});
        方法2:$(function(){});
    12.jQuery选择器-定义:jQuery选择器允许对HTML元素组或单个元素进行操作。jQuery选择器基于元素的id、类、类型、属性、属性值等查找或选择HTML元素。
        它基于已经存在的CSS选择器,另外还有一些自定义的选择器。
        jQuery中的选择器都以$开头:$();
    13.相关重点选择器(重点内容:
        13.1 元素选择器:jQuery元素选择器基于元素名选择元素。例如-在页面中选取所有"p"元素:$("p")/jQuery("p")
            实例:用户点击按钮后,所有p元素进行隐藏
            实例代码:$(function(){
                        $("button").click(function(){
                            $("p").hide();
                        });
                      });
        13.2 #id选择器:jQuery #id选择器通过HTML元素的id属性选取指定的元素。页面中元素的id唯一,在页面中选取唯一的元素通过#id选择器。例如-选择id=test的元素:$("#test")
            实例:用户点击按钮后,id=test的元素进行隐藏
            实例代码:$(function((){
                        $("button").click(function(){
                            $("#test").hide();
                        });
                      });
        13.3 .class选择器:jQuery类选择可以通过class查找元素。例如-查找class=test的元素:$(".test")
            实例:用户点击按钮后,class=test的属性进行隐藏
            实例代码:$(function(){
                        $("button").click(function(){
                            $(".test").hide();
                        });
                      });
        13.4 其他选择器
            $("*") 选取所有元素
            $("this") 选取当前元素
            $("p.intro") 选取class=intro的p元素
            $("p:first") 选取第一个p元素
            $("p:last") 选取最后一个p元素
            $("[href]") 选取带有htef属性的元素
            $("[href=]") 选择带有href属性并且属性值等于某个值的元素
            $("a[tatger=_blank]") 选取a标签中带有target属性且属性值等于_blank的元素
            $(":button") 选取页面所有的button
            $(":checked") 选取页面所有被选中的元素
            $("tr:even") 选取偶数位的tr
            $("tr:odd") 选取奇数位的tr
            $(":selected") 选取select中被选中的元素
    14.jQuery事件
        14.1 定义:页面对不同访问者的响应叫做事件。事件处理程序指的是当HTML中发生某些事件时所调用的方法。
        14.2 实例:元素上移动鼠标、选取单选按钮、点击元素、按下按键时触发keypress事件
        14.3 简单用法:在jQuery中,大多数DOM事件都有一个等效的jQuery方法。页面中指定一个点击事件:$("p").click(function(){});
        14.4 常用的jQuery事件方法:
            click  单击事件-鼠标点击某个对象
            实例:给文档中id=box的元素添加点击事件
            实例代码:$(function(){
                        $("#box").click(function(){
                            alert("单击事件");
                        });
                      });
            
            在jQuery事件中,也可主动响应对应的事件:$("box").click();
            
            dbclick 双击事件-鼠标双击某个对象
            实例:给文档中id=box的元素添加双击事件
            实例代码:$(function(){
                        $("#box").dbclick(function(){
                            console.log("双击事件");
                        });
                      });
            
            focus 获得焦点事件
            blur  失去焦点事件
            实例:给文档中的inpyt元素添加点击事件
            实例代码:$(function(){
                        $("input").focus(function(){
                            console.log("获得焦点");
                        });
                        
                        $("input").blur(function(){
                            console.log("失去焦点");
                        });
                     });
            
            change 改变事件,change域的内容被改变时触发,用于select、input和textarea标签。
            当用于select元素时,change事件会在选择某个选项时发生;当用于input和textarea元素时,该时间会在元素失去焦点时触发。
            实例:给文档中的select标签和input标签添加改变时间
            实例代码:
                <body>
                    故乡:<select name="city" id="city">
                        <option value="1">北京</option>
                        <option value="2">广州</option>
                        <option value="3">武汉</option>
                        <option value="4">深圳</option>
                    </select>
                    
                    密码:<input type="password" placeholder="请输入密码">
                </body>
                
                <script>
                    $("select").change(function(){
                        console.log("选中城市为:"+$(this).val);
                    });
                    
                    $("input").change(function(){
                        console.log("输入密码为:"+$(this).val);
                    });
                </script>
            
            mouseenter 鼠标事件-鼠标指针穿过元素时触发,大多数与mouseleave事件一起使用。mouseover和mouseout事件一起使用。
            与mouseover事件不同,只有当鼠标指针穿过被选元素时,才会触发mouseenter事件。如果鼠标指针穿过任何子元素,同样会触发mouseover事件。
            实例:给id=box的元素添加鼠标事件
            实例代码:
                $(function(){
                    $("#box").mouseenter(function(){
                        console.log("鼠标进入");
                    });
                    
                    $("#box").mouseleave(function(){
                        console.log("鼠标离开");
                    });
                    
                    $("#box").mousedown(function(){
                        console.log("鼠标按下");
                    });
                    
                    $("#box").mouseupon(function(){
                        console.log("鼠标抬起");
                    });
                    
                    $("#box").mousemove(function(){
                        console.log("鼠标移动");
                    });
                });
            
        hover事件 一个模仿悬停事件(鼠标移动到一个对象上面及移除这个对象)的方法
        语法:hover([fnOver],fnOut) 
        fnOver 鼠标移到元素上要触发的函数;fnOut表示鼠标移出时要触发的函数
        当鼠标移动到一个匹配的元素上面时(mouseenter)会触发指定的第一个函数,当鼠标移出这个元素(mouseleave)时,会触发指定的第二个函数
        实例代码:
            <script>
                $(function(){
                    $("#box").hover(function(){
                        console.log("鼠标进入");
                    },function(){
                        console.log("鼠标离开");
                    });
                });
            </script>
        
        event事件对象-event属性
            属性-描述(事件)
            altKey-事件触发时是否按下了alt键(鼠标事件)
            ctrlKey-当事件触发时是否按下了ctrl键(鼠标事件)
            shiftKey-当事件触发时是否按下了shift键(鼠标事件)
            button-当事件触发时是按的鼠标的那个键(鼠标事件)
            clientX-设置或获取最标指针位置相对于窗口客户区域的x坐标,其中客户区域不包括窗口自身的控件和滚动条。(鼠标事件)
            clientY-设置或获取鼠标指针位置相对于窗口客户区域的y坐标,其中客户区域不包括窗口自身的控件和滚动条。(鼠标事件)
            keyCode-得到被按下键的ASCESC 编码(键盘事件)
            type-返回当前Event对象表示的事件的名称(任意事件)
            target-最初触发事件的DOM元素,特指事件触发源event.target(任意事件)
            currentTarger-在事件冒泡阶段中的当前DOM元素,特指当前事件源(任意事件)
            data-当前执行的处理器被绑定的时候,包含的数据传递(任意事件)
        event事件对象-event方法
            stopPropagation 阻止事件冒泡(任意事件)
            preventDefault  阻止事件的默认动作(任意事件)
            事件冒泡:事件会按照DOM的层次结构像水泡一样不断向上直至顶端
            实例:阻止文档中的class="child"的元素事件派发
            实例代码:
            <script>
                $(".child").on("click",function(event){
                    console.log("子元素响应事件");
                    event.stopPropagation();
                });
                
                $(".parent").on("click",function(){
                    console.log("父元素响应事件");
                });
            </script>
            
            实例:阻止文档中元素的默认行为
            实例代码:
            $(".ling").on("click",function(event){
                event.preventDefault();//阻止事件的默认动作
            });
    
    15.jQuery DOM操作【重中之重】
        15.1 jQuery捕获
        jQuery 中提供了一系列与DOM相关的方法,使得访问和操作元素和属性很简单
        DOM = Document Object Model (文档对象模型)
        DOM定义访问HTML和XML文档的标准
        W3C文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构及样式
        
        获取内容-text()、html()、val()。三个简单实用的用于DOM操作的jQuery方法
        text() -设置或返回所选元素的文本内容
        html() -设置或返回所选元素的内容(包括HTML标记)
        val()  -设置或返回表单字段的值
        实例:通过text()和html()方法来获取内容、通过val()方法获取输入字段的值
        <body>
            <p id="test">这是段落中的 <b>粗体</b> 文本。</p>
            <button id="btn1"> 显示文本</button>
            <button id="btn2"> 显示HTML</button>
            
            <p>名称: <input type="text" id="test1" value="jQuery教程"></p>
            <button id="btn3">显示值</button>
        </body>
        <script>
            $(function(){
                $("#btn1").click(function(){
                    alert("Text:"+$("#test").text());
                });
                
                $("#btn2").click(function(){
                    alert("HTML:"+$("#test").html());
                });
                
                $("#btn3").click(function(){
                    alert("值为:"+$("#test1").val());
                });
            });
        </script>
        
        attr() -此方法用于获取自定义的DOM属性值
        实例:获取href属性的值
        <a href="www.runoob.com" id="powernode">jQuery</a>
        <script>
            $(function(){
                $("button").click(function(){
                    alert($("#powernode").attr("href"));
                });
            });
        </script>
        
        prop() -获取HTML元素本身带有的固有属性,快读准确
        注意:在select和radio和checkbox中我们取selected checked属性应使用prop
        
        15.2 jQuery设置
            设置内容-text()、html()、val()
            text()-设置或返回所选元素的文本内容
            html()-设置或返回所选元素的内容(包括HTML标记)
            val() -设置或返回表单字段的值
            实例:通过text()、html()、val()设置内容
            实例代码:
                $(function(){
                    $("#btn1").click(function(){
                        $("#test1").text("hello world");
                    });
                    $("#btn2").click(function(){
                        $("#test2").html("<b>hello world!</b>");
                    });
                    $("#btn3").click(function(){
                        $("#test3").val("powernode");
                    });
                });
            
            text()、html()、val()的回调函数,回调函数有两个参数,被选元素列表中当前元素的下表,以及原始值。然后以函数新值返回希望适用的字符串。
            实例:带回调眼熟的text()、html()
            实例代码:
                $("#btn1").click(function(){
                    $("#test1").text(function(i,origText){
                        return "旧文本:"+origText+"新文本:hello world!(index:"+i+)";
                    });
                });
                
                $("#btn2").click(function(){
                    $("#test2").html(function(i,origText){
                        return "旧html:"+origText+"新html:<b>hello world<b>(index:"+i+")";
                    });
                });
            注意:html(function(index,html)) index为元素在集合中的索引位置,html为原先的HTML值

            设置属性-attr()
            attr()方法也可用于设置/改变属性值
            实例:设置(改变)链接中href属性的值
            实例代码:$("#powernode").attr("href","www.powernode.com");
            
            实例:设置改变href和title,两个属性
            实例代码:$("#powernode").attr({"href":"www.powernode.com","title":"标题"});
            
            attr的回调函数,有两个参数,分别为被选元素列表中当前元素的下标,以及原始的旧值。然后以函数新值返回希望适用的字符串。
            实例代码:
                $("button").click(function(){
                    $("#powernode").attr("href",function(i,origValue){
                        return origValue + "/java";
                    });
                });
                
            设置属性-prop()    
            对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。快速,准确。

            对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
            
            注意:在select和radio和checkbox中我们取selected checked属性应使用prop
                
        15.3 添加元素
            添加新的HTML内容
            append() -在被选元素的内部结尾添加内容
            prepend() -在被选元素的内部开头添加内容
            after() -在被选元素之后插入内容
            before() - 在被选元素之前插入内容
            
            实例代码:
                $("p").append("追加文本");
                $("p").prepend("开头追加文本");
                $("img").after("在后面添加文本");
                $("img").before("在前面添加文本");
        15.4 删除元素
            remove() -删除被选元素及其子元素,remove()方法支持接收1个参数,允许对被删除元素进行过滤,参数可以是jQuery任何选择器的语法
            empty() -从被选元素中删除子元素
            
            实例代码:$("#div1").remove();$("#div2").empty();$("#div3").remove(".italic");
        15.5 jQuery CSS 类
            jQuery拥有若干进行CSS操作的方法,常用如下:
            addClass() -向被选元素添加一个或多个类
            removeClass() -向被选元素删除一个或多个类
            toggleClass() -向被选元素进行添加/删除类的切换操作
            css() - 设置或返回样式属性 
            
            实例样式表
            .important
            {
                font-weight:bold;
                font-size:xx-large;
            }
            
            .blue
            {
                color:blue;
            
            }
            
            addClass()实例代码:向不同元素添加class属性
            $("button").click(function(){
                $("h1,h2,p").addClass("blue"); --选取多个元素添加
                $("div").addClass("important"); -- 选取单个元素添加
                
                $("#div1").addClass("import class"); -- 添加多个类 
            });
            
            removeClass()实例代码:在不同的元素中删除指定的class属性
            $("button").click(function(){
                $("h1,h2,p").removeClass("blue");
            });
            
            toggleClass()实例代码:对被选元素进行添加/删除类的切换操作
            $("button").click(function(){
                $("h1,h2,p").toggleClass("blue");
            });
            
            css()实例代码:设置或返回被选元素的一个或多个样式属性 
            返回指定的css属性的值语法:css("propertyname"); 
            实例:返回被选元素的background-color值  实例代码:$("p").css("background-color");
            
            设置执行的css属性的值语法:css("propertyname","value");
            实例:将所匹配元素的background-color设置为yellow 实例代码:$("p").css("background-color","yellow")
            
            设置多个css属性语法:css({"propertyname":"value","propertyname":"value"...})
            实例:将所匹配元素设置background-color和font-size 实例代码:$("p").css({"background-color":"yellow","font-size":"200%"})
    16.jQuery和DOM对象互转【重点】
        16.1 jQuery转换成DOM对象
            两种转换方式:[index]、.get(index)
            jQuery对象是一个数据对象,可以通过[index]的方法,来得到一个DOM对象 
            例如 var vj = ("#v");//jQuery对象 
                var vd = $vj[0]; //DOM对象 
                alert(vd.checked); //检测这个checkbox是否被选中 
                
            jQuery本身提供.get(index)方法,得到相应的DOM对象 
            例如 var vj = ("#v"); //jQuery对象 
            var vd = $vj.get(0); //DOM对象 
            alert(vd.checked); //检测这个checkbox是否被选中
        
        16.2 DOM转换为jQuery对象 
            用()将DOM对象包装起来,即可转换为jQuery对象
            例如 var vd = Document.getElementByID("v"); //DOM对象 
                 var vj = (vd); //jQuery对象 
            转换之后,可任意适用jQuery的方法。
        
        注意:DOM对象才能适用DOM对象的方法,jQuery对象不可适用DOM对象的方法
        
    17.表单处理【掌握】
        17.1 解决表单提交的冒泡问题
        实例代码
        <body>
        <form action="#" method="get" id="frm">
            ID:<input type="text" id="id" name="id"> <br>
            NAME:<input type="text" id="name" name="name"> <br>
            <input type="button" id="doSubmit" value="提交">
            <input type="button" id="doReset" value="提交">
        </form>
        </body>
        
        <script>
            $(function(){
                $("#doSubmit").click(function(){
                    console.log("doSubmit点击事件被触发");
                    $("#frm").submit();
                });
                
                $("#doReset").click(function(){
                    $("#frm")[0].reset();//通过js去重置,在jquery里的表单对象没有reset方法,适用原生js中的reset方法
                });
            });
        </script>
        
        17.2 serializeArray()和 serialize()的区别
            serializeArray()返回一个JSON数组,里面是表单属性的name的属性值和value
            serialize()返回的是一个查询参数,例如id=1&name=2&gender=3&sal=4
    
    18.jQuery each()方法 【掌握】
        语法:$(selector).each(function(index,element))
        作用描述:为每个匹配元素运行规定的函数,index表示选择器的index位置,element表示当前的元素,也可用this代替
        
        实例:循环JSON数组生成无刷新的table并能删除和添加
        <!DOCTYPE html>

        <html>
        
        <head>
        
            <meta charset="UTF-8">
        
            <title>01表单处理.html</title>
        
            <!--引入jquery-->
        
            <script src="../js/jquery-3.6.0.js" charset="UTF-8"></script>
        
        
        
        </head>
        
        <body>
        
        <h1>添加用户</h1>
        
        <form id="userAddFrm" action="#" method="get">
        
            ID:<input type="text" name="id">
        
            NAME:<input type="text" name="name">
        
            SEX:<input type="radio" name="sex" checked value="男">男 <input type="radio" value="女" name="sex">女
        
            SAL:<input type="text" name="sal">
        
            <input type="button" id="doSubmit" value="添加">
        
            <input type="reset" value="重置">
        
        </form>
        
        <hr>
        
        <h1>用户列表</h1>
        
        <table id="userTable" width="100%" border="1" cellspacing="3" cellpadding="3" style="border: 1px solid green">
        
        
        
        </table>
        
        </body>
        
        <script>
        
            //声明一个json数组的容器
        
            let users=[{"id":1,"name":"小明","sex":"男","sal":5998.00}
        
            ,{"id":2,"name":"小红","sex":"女","sal":1998.00}
        
            ,{"id":3,"name":"小丽","sex":"女","sal":2998.00}
        
            ,{"id":4,"name":"小芳","sex":"女","sal":3998.00}]
        
        
        
            //数据初始化的方法
        
            function  initTableData(){
        
                let userTable=$("#userTable");
        
                let html="<tr><th>ID</th><th>NAME</th><th>SEX</th><th>SAL</th><th>操作</th></tr>"
        
                $.each(users,function (index,item){
        
                    html+="<tr><th>"+item.id+"</th><th>"+item.name+"</th><th>"+item.sex+"</th><th>"+item.sal+"</th><th><input type='button' οnclick='del("+item.id+")' value='删除'></th></tr>"
        
                })
        
                userTable.html(html)
        
            }
        
            initTableData();
        
        
        
            //监听添加按钮的事件
        
            $("#doSubmit").click(function (){
        
                let userAddFrm=$("#userAddFrm");
        
                let arrays=userAddFrm.serializeArray()
        
                let jsonObj={};
        
                $.each(arrays,function (index,item){
        
                    jsonObj[item.name]=item.value;
        
                })
        
                //把组装好的json对象放到users数组里面
        
                users.push(jsonObj);
        
                //刷新表格
        
                initTableData()
        
            })
        
            function del(id){
        
                //循环users找到id=传入id这个对象,再删除
        
                $.each(users,function (index,item){
        
                    if(item.id==parseInt(id)){
        
                        //删除
        
                        users.splice(index, 1);
        
                        //刷新表格
        
                        initTableData()
        
                        return;
        
                    }
        
                })
            }
        </script>

转载请注明出处或者链接地址:https://www.qianduange.cn//article/24111.html
标签
评论
发布的文章

prompt工程起步

2025-03-23 11:03:21

ChatPromptTemplate的使用

2025-03-23 11:03:20

地基Prompt提示常用方式

2025-03-23 11:03:20

网络安全知识点

2025-03-23 11:03:15

第27周JavaSpringboot git初识

2025-03-23 11:03:15

Android studio运行报错处理

2025-03-23 11:03:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
浏览器升级提示:您的浏览器版本较低,建议您立即升级为知了极速浏览器,极速、安全、简约,上网速度更快!立即下载
复制成功!