jQuery

1、jQuery 的使用

1.1、使用步骤

  • 引入 jQuery 文件

  • 获取 jQuery 对象 ----> $(选择器)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box"></div>
        
        <script>
            console.log($("#box"));
        </script>
    </body>
</html>

1.2、jQuery 对象与 js 对象的转换

1.2.1、js 对象转为 jQuery 对象

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box"></div>
        
        <script>
            console.log($(document.querySelector("#box")));
        </script>
    </body>
</html>

1.2.2、jQuery 对象转为 js 对象

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box"></div>
        
        <script>
            console.log($("#box")[0]);      // 推荐
            console.log($("#box").get(0));  // 了解
        </script>
    </body>
</html>

2、jQuery 选择器

2.1、基础选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box">box</div>
        <div class="haha">div_haha</div>
        
        <script>
            console.log($("#box"));
            console.log($(".haha"));
            console.log($("div"));
            console.log($("*"));
        </script>
    </body>
</html>

2.2、群组 | 组合选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box">box</div>
        <div class="haha">div_haha</div>
        
        <script>
            console.log($("#box, .haha"));
        </script>
    </body>
</html>

2.3、层次选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box">box
            <ul>
                <li>li1</li>
                <li>li2
                    <ul>
                        <li>内部li1</li>
                        <li>内部li2</li>
                    </ul>
                </li>
                <li>li3</li>
            </ul>
        </div>
        <div class="haha">div_haha</div>
        <div class="haha">div</div>
        <p class="haha">p_haha</p>
        
        <script>
            console.log($("#box ul"));
            console.log($("#box > ul"));
            console.log($("#box + div"));
            console.log($("#box ~ div"));
        </script>
    </body>
</html>

2.4、属性选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <form id="myform" name="myform" method="post">
            <input type="hidden" name="uno" value="9999" disabled="disabled" />
            姓名:<input type="text" id="uname" name="uname" /><br />
            密码:<input type="password" id="upwd" name="upwd" value="123456" /><br />
            年龄:<input type="radio" name="uage" value="0" checked="checked" />小屁孩
            <input type="radio" name="uage" value="1" />你懂得 <br />
            爱好:
            <input type="checkbox" name="ufav" value="篮球" />篮球
            <input type="checkbox" name="ufav" value="爬床" />爬床
            <input type="checkbox" name="ufav" value="代码" checked />代码<br />
            来自:
            <select id="ufrom" name="ufrom">
                <option value="-1" selected="selected">请选择</option>
                <option value="0">北京</option>
                <option value="1" selected>上海</option>
            </select><br />
            简介:<textarea rows="10" cols="30" name="uintro"></textarea><br />
            头像:<input type="file" /><br />
            <input type="image" src="http://www.baidu.com/img/bd_logo1.png" width="20" height="20" />
            <button type="submit" onclick="return checkForm();">提交</button>
            <button type="reset">重置</button>
        </form>
        
        <script>
            console.log($("[type]"));           // 具有这个属性的元素
            console.log($("[type = radio]"));   // 具有这个属性,并且等于指定属性值
        </script>
    </body>
</html>

2.5、表单选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <form id="myform" name="myform" method="post">
            ……………………
        </form>
        
        <script>
            console.log($(":input"));
            console.log($(":radio"));
            console.log($(":checkbox"));
            console.log($(":password"));
        </script>
    </body>
</html>

2.6、过滤选择器(配合其他选择器一起使用)

  • :checked 被选中的

  • :selected 被选中的 option

  • :eq(index) 获取指定索引位置的元素

  • :gt(index) 获取大于指定索引的元素

  • :lt(index) 获取小于指定索引的元素

  • :even 偶数索引

  • :odd 奇数索引

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <form id="myform" name="myform" method="post">
            ……………………
        </form>
        
        <script>
            console.log($(":checkbox:checked"));
            console.log($(":selected"));
            console.log($(":input:eq(1)"));
            console.log($(":input:gt(3)"));
            console.log($(":input:lt(3)"));
            console.log($(":input:even"));
            console.log($(":input:odd"));
        </script>
    </body>
</html>

 注意:

  • JS DOM 中获取 DOM 对象如果没有获取到,返回 null

  • jQuery 获取 jQuery 对象,如果没有获取到,返回一个空 jQuery 对象

3、jQuery 操作

3.1、操作属性

3.1.1、属性

分类:

  • 固有属性:src,href,id,class...

  • 自定义属性:程序猿为元素添加的自定义属性

  • boolean属性:checked,selected,disabled

3.1.2、获取属性值

  • $().attr("属性名"):可以获取固有属性的值,可以获取自定义属性,boolean 属性结果为对应的值

  • $().prop("属性名"):可以获取固有属性的值,不可以获取自定义属性,boolean 属性结果为 true | false

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box1" abc="123">div1</div>
        <input type="radio" name="gender" id="man" checked />
        
        <script>
            // 固有属性
            console.log($("#box1").attr("id"));     // box1
            console.log($("#box1").prop("id"));     // box1
            // 自定义属性
            console.log($("#box1").attr("abc"));    // 123
            console.log($("#box1").prop("abc"));    // undefined
            // boolean 属性
            console.log($("#man").attr("checked")); // checked
            console.log($("#man").prop("checked")); // true
        </script>
    </body>
</html>

3.1.3、设置属性值

  • $().attr("属性名", "属性值"):可以操作固有属性,自定义属性,boolean 属性对应属性值为确定的值

  • $().prop("属性名", "属性值"):只能操作固有属性,boolean 属性值为 true | false

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
        <style>
            .red {
                background: red;
            }
        </style>
    </head>
    <body>
        <div id="box1" abc="123">div1</div>
        <div id="box2" abc="123">div2</div>
        <input type="radio" name="gender" id="man" checked />
        <input type="radio" name="gender" id="woman" />
        
        <script>
            // 固有属性
            console.log($("#box1").attr("class", "red"));
            console.log($("#box2").prop("class", "red"));
            // 自定义属性
            console.log($("#box1").attr("haha", "hh"));
            console.log($("#box2").prop("haha", "hh"));     // 不能设置
            // boolean 属性
            console.log($("#man").attr("checked", "checked"));  // checked | null
            // console.log($("#man").prop("checked", true));
        </script>
    </body>
</html>

3.1.4、删除属性

  • $().removeAttr("属性名")

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
        <style>
            .red {
                background: red;
            }
        </style>
    </head>
    <body>
        <div id="box1" abc="123">div1</div>
        <div id="box2" abc="123">div2</div>
        <input type="radio" name="gender" id="man" checked />
        <input type="radio" name="gender" id="woman" />
        
        <script>
            $("#box1").removeAttr("abc");
        </script>
    </body>
</html>

3.1.5、attr 和 prop 之间的区别

  • attr 可以操作所有属性

  • prop 只能操作固有属性

  • attr 操作 boolean 属性,value 为定值,prop 操作 boolean,value 为 true | false

  • boolean 属性建议使用 prop,其他属性建议使用 attr

3.2、操作元素的样式

3.2.1、获取样式名称

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box2" class="haha hehe">div2</div>
        
        <script>
            console.log($("#box2").attr("class"));      // haha hehe
        </script>
    </body>
</html>

3.2.2、修改样式(属性值的覆盖)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
        <style>
            .red {
                background: red;
            }
        </style>
    </head>
    <body>
        <div id="box2" class="haha hehe">div2</div>
        
        <script>
            $("#box2").attr("class", "red");
        </script>
    </body>
</html>

3.2.3、添加样式名称(属性值的追加)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
        <style>
            .size {
                font-size: 30px;
            }
        </style>
    </head>
    <body>
        <div id="box1">div1</div>
        
        <script>
            $("#box1").addClass("size");
        </script>
    </body>
</html>

3.2.4、添加具体的样式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box1">div1</div>
        <div id="box2">div2</div>
    
        <script>
            $("#box1").css("width", "500px");
            $("#box2").css({"width" : "500px", "height" : "200px"});
        </script>
    </body>
</html>

3.2.5、移除样式名称

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box2" class="haha hehe">div2</div>
    
        <script>
            $("#box2").removeClass("haha");
        </script>
    </body>
</html>

3.3、操作元素的值

3.3.1、非表单元素标签对的值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="box1">div1
            <p>我是div1中的p标签</p>
        </div>
        <div id="box2">div2
            <p>我是div2中的p标签</p>
        </div>
​
        <script>
            console.log($("#box1").html());
            console.log($("#box2").text());
​
            console.log($("#box1").html("<span style='color: cyan'>我是div1中的span</span>"));
            console.log($("#box2").text("<span style='color: cyan'>我是div2中的span</span>"));
        </script>
    </body>
</html>

3.3.2、表单元素的值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <input type="text" name="words" value="张三">
​
        <script>
            console.log($("[type = text]").val());
            console.log($("[type = text]").val("李四"));
        </script>
    </body>
</html>

3.4、创建元素

  • $("元素内容");

$('<p>this is a paragraph!!!</p>');

3.5、添加元素

  • prepend(content):在被选元素内部的开头插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记

  • $(content).prependTo(selector):把 content 元素或内容加入 selector 元素开头

  • append(content):在被选元素内部的结尾插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记

  • $(content).appendTo(selector):把 content 元素或内容插入 selector 元素内,默认是在尾部

  • before():在元素前插入指定的元素或内容 $(selector).before(content)

  • after():在元素后插入指定的元素或内容 $(selector).after(content)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <ul id="box">
            <li>ul的li1</li>
            <li class="li">ul的li2</li>
        </ul>
​
        <script>
            var li = $('<li style="color:greenyellow;"></li>');
            
            // 使用 prepend 前加内容
            $("#box").prepend("<li>ul的li3</li>");
            
            // 使用 prependTo 前加内容
            $("<li>ul的li4</li>").prependTo("body");
            
            // 使用 append 后加内容
            $("#box").append("<li>ul的li5</li>");
            $("#box").append($(".li"));     // 当把已存在的元素添加到另一处的时候相当于移动
        
            // 使用 appendTo 后加内容
            $("<li>ul的li6</li>").appendTo("#box");
            
            // 使用 before 前加内容
            $(".li").before("<li>ul的li7</li>");
            
            // 使用 after 后加内容
            $(".li").after("<li>ul的li8</li>");
        </script>
    </body>
</html>

3.6、删除元素

  • remove():删除所选元素或指定的子元素,包括整个标签和内容一起删除

  • empty():清空所选元素的内容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <ul id="box">
            <li>ul的li1</li>
            <li>ul的li2</li>
            <li>ul的li3</li>
        </ul>
​
        <script>
            $("#box").remove();
            $("#box").empty();
        </script>
    </body>
</html>

3.7、遍历元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <ul id="box">
            <li>ul的li1</li>
            <li>ul的li2</li>
            <li>ul的li3</li>
        </ul>
​
        <script>
            $("li").each(function(index, element) {
                console.log(index, element);
                console.log($(element));
            });
        </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值