【前端基础】4、jQuery

4. jQuery

4.1 jQuery 的各种选择器

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> 
</head>  
<body>
    <ul>
        <li>苹果</li>
        <li>香蕉</li>
        <li>桔子</li>
        <li><span>菠萝</span></li>
        <li>西瓜</li>
        <li>梨子</li>
        <li>哈密瓜</li>
        <li>葡萄</li>
    </ul>

    <form action="a.jsp">
        姓名:<input type="text" id="username" class="t" name="username" /> <br />
        密码:<input type="password" name="password" id="password" class="t" />
        <br />
        简介:<input type="text" name="intro" /> <br />
        爱好:<input type="checkbox" name="habby" value="ball" checked />打球
        <input type="checkbox" name="habby" value="swim" />游泳
        <input type="checkbox" name="habby" value="game" />游戏 <br />
        <input type="button" value="查看" />
    </form>
</body>
$(function () {
    // 1. 各种选择器使用
    func01();
});
function func01() {
    // 第一部分:基本选择器
    // 1.1 id选择器
    //$("#username").css("background-color","pink")                 // 一次可以设置一个样式
    $("#username").css({ "background-color": "pink", color: "blue" }); // 一次可以设置多个样式
    // 1.2 类别选择器
    $(".t").css({ "text-decoration": "underline" });
    // 1.3 直接后代选择器
    $("li>span").css("color", "orange");

    // 第二部分:表单元素(属性)选择器
    // 1.4 表单的属性选择器
    // 1.4.1 选择单个的表单元素
    $('input[name="username"]').css("font-size", "25px");
    // 1.4.2 选择表单元素的某个属性中包含有指定字符
    $("input[name*=a]").css("padding-left", "15px");
    // 1.4.3 选择元素中name属性以i开头
    $("input[name^=i]").css({ background: "lightyellow" });
    // 1.4.4 选择元素中name属性以o结束
    $("input[name$=o]").css({ color: "red" });

    // 第三部分:根据序号选择器
    // 3.1 选择第一个元素
    // $("li:first").css("color","green")
    // 也可以(通用性更强) (序号从0开始)
    $("li:eq(0)").css("color", "green");
    $("li:eq(1)").css("color", "yellow");
    // 3.2 选择最后一个
    $("li:last").css("color", "purple");
    // 3.3 选择奇数个
    $("li:even").css("background", "lightyellow");
    // 3.4 选择偶数个
    $("li:odd").css("background", "lightblue");
    // 3.5 选择大于指定索引号的元素(序号从0开始)
    $("li:gt(2)").css("color", "red"); // gt: greate than: 大于
    // 3.6 选择小于指定索引号的元素(序号从0开始)
    $("li:lt(3)").css("color", "blue");
    // 3.7 选择指定序号的元素(序号从1开始)
    $("li:nth-child(3)").css({ "font-weight": "bold", color: "orange" });

    // 第四部分:处理表单选择项问题
    $("input[name=habby]:eq(2)").prop("checked", true);

    // 案例:得到默认的兴趣爱好?
    let habby = $(":checked"); // 选择页面中默认被选择的项的值
    let arr = [];
    for (const k in habby) {
        if (!isNaN(k)) {
            // 处理方式一【转换为jquery对象】:$(habby[k]): 将dom对象habby[k]转换为jquery对象
            // arr.push($(habby[k]).val())
            // 处理方式二【直接使用dom对象】:
            arr.push(habby[k].value);
        }
    }

    // 重要知识点:jquery对象与dom对象之间的互相转换?
    // jquery对象:$("#username")
    // dom对象: document.querySelector("#username")
    // 1. 将dom对象转换为jquery对象,语法为:$(dom对象)
    $(document.querySelector("#username")).css("color","purple")
    // 2. 将jquery对象转换为dom对象,语法为:jquery对象[0]或jquery对象.get(0)
    $("#username")[0].style.color = "blue";
    console.log("你的爱好:", arr);
}

image-20240801153029683

image-20240801153052260

4.2 jQuery 的操作页面元素

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> 
</head>
<body>
    <form action="a.jsp">
        姓名:<input
                  type="text"
                  id="username"
                  class="t"
                  name="username"
                  value="zhangsan"
                  />
        <br />
        密码:<input type="password" name="password" id="password" class="t" />
        <br />
        简介:<input type="text" name="intro" /> <br />
        爱好:
        <input type="checkbox" name="habby" value="ball" checked />打球
        <input type="checkbox" name="habby" value="swim" />游泳
        <input type="checkbox" name="habby" value="game" />游戏 <br />
        <input type="button" value="添加类" onclick="func01()" />
        <input type="button" value="移除类" onclick="func02()" />
        <input type="button" value="添加/移除类" onclick="func03()" />
        <input type="button" value="添加属性" onclick="func04()" />
        <input type="button" value="删除属性" onclick="func05()" />
    </form>
    <ul>
        <li>苹果</li>
        <li>香蕉</li>
        <li>桔子</li>
        <li><span>菠萝</span></li>
        <li>西瓜</li>
        <li>梨子</li>
        <li>哈密瓜</li>
        <li>葡萄</li>
    </ul>
</body>
.t {
    background-color: pink;
}
$(function () {
    // func01();
    test01();
});
function test01() {
    let first = $("li:eq(0)").html(); // 查看值
    $("li:eq(0)").html("<h1>栗子</h1>"); // 相当于innerHTML,可以解析其中内容的html语法
    // $("li:eq(0)").text("<h1>栗子</h1>"); // 相当于innerText, 里面的内容原样显示,不解析html
    console.log("first:", first);
    let username = $("#username").val();
    console.log("修改前:", username);
    $("#username").val("李四");
    username = $("#username").val();
    console.log("修改后:", username);
}
//1.  添加类
function func01() {
    $("#username").addClass("t");
}
//2. 移除类
function func02() {
    $("#username").removeClass("t");
}
//3. 添加/移除类
function func03() {
    $("#username").toggleClass("t");
}
// 4. 添加属性
function func04() {
    $("input[name=habby]").eq(1).prop("aa", "123");
    console.log($("input[name=habby]").eq(1).prop("aa"));
}
// 5. 删除属性
function func05() {
    $("input[name=habby]").eq(1).removeProp("aa"); // 只能删除自定义属性,不能删除自带的属性,如:checked
    console.log($("input[name=habby]").eq(1).prop("aa"));
}

image-20240801153559093

image-20240801153612572

4.3 jQuery 的事件处理

<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> 
</head>
<body>
    <form action="a.jsp">
        姓名:<input
                  type="text"
                  id="username"
                  class="t"
                  name="username"
                  value="zhangsan"
                  />
        <br />
        密码:<input type="password" name="password" id="password" class="t" />
        <br />
        简介:<input type="text" name="intro" /> <br />
        爱好:
        <input type="checkbox" name="habby" value="ball" checked />打球
        <input type="checkbox" name="habby" value="swim" />游泳
        <input type="checkbox" name="habby" value="game" />游戏 <br />
        <input type="button" value="on绑定事件" id="btn1" />
        <input type="button" value="bind绑定事件" id="btn2" />
        <input type="button" value="one绑定事件" id="btn3" />
        <input type="button" value="直接使用事件名" id="btn4" />
    </form>
</body>
$(function () {
    // 1. 使用on绑定事件
    $("#btn1").on("click", function () {
        console.log("[on绑定事件]:hello,btn1");
    });
    // 2. 使用bind来绑定事件
    $("#btn2").bind("click", function () {
        console.log("[bind绑定事件]:hello,btn2");
    });
    // 3. 使用one绑定事件,只执行一次
    $("#btn3").one("click", function () {
        console.log("[one绑定事件]:hello,btn3");
    });
    // 4. 可以使用事件名直接处理事件 (经常使用)
    $("#btn4").click(function () {
        console.log("[直接使用事件名处理]:hello,btn4");
    });
});

image-20240801152533667

image-20240801152521258

4.4 jQuery 动画

#d1 {
    width: 200px;
    height: 200px;
    background-color: red;
}
#d2 {
    height: 100px;
    width: 100px;
    display: none;
    background-color: blue;
}
#d3 {
    height: 100px;
    width: 100px;
    display: none;
    background-color: orange;
}
#d4 {
    width: 10px;
    height: 10px;
    background-color: lightblue;
}
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> 
</head>
<body>
    <div id="d1"></div>
    <div id="d2"></div>
    <div id="d3"></div>
    <div id="d4"></div>
    <input type="button" value="显示动画" id="btn1" />
    <input type="button" value="隐藏动画" id="btn2" />
    <input type="button" value="向下滑动动画" id="btn3" />
    <input type="button" value="向上滑动动画" id="btn4" />
    <input type="button" value="上下滑动动画" id="btn5" />
    <br />
    <input type="button" value="渐进动画" id="btn6" />
    <input type="button" value="渐出动画" id="btn7" />
    <input type="button" value="渐进渐出动画" id="btn8" />
    <input type="button" value="渐进到指定不透明度动画" id="btn9" />
    <br />
    <input type="button" value="自定义动画" id="btn10" />
</body>
$(function () {
    // 1. 显示动画
    $("#btn1").click(function () {
        $("#d1").show();
    });
    // 2. 隐藏动画
    $("#btn2").click(function () {
        $("#d1").hide();
    });
    //3. 向下滑动动画
    $("#btn3").click(function () {
        $("#d2").slideDown();
    });
    // 4. 向上滑动动画
    $("#btn4").click(function () {
        $("#d2").slideUp();
    });
    // 5. 上下滑动动画
    $("#btn5").click(function () {
        $("#d2").slideToggle();
    });
    //6. 渐进动画
    $("#btn6").click(function () {
        $("#d3").fadeIn(3000);
    });
    //7. 渐出动画
    $("#btn7").click(function () {
        $("#d3").fadeOut(3000);
    });
    //8. 渐进渐出动画
    $("#btn8").click(function () {
        $("#d3").fadeToggle(3000);
    });
    //9. 渐进指定不透明动画
    $("#btn9").click(function () {
        $("#d3").fadeTo(3000, 0.5);
    });
    //10. 自定义动画
    $("#btn10").click(function () {
        $("#d4").animate({
            width: "200px",
            height: "200px",
        });
    });
});

4.5 Ajax

students.json

[
    {
        "sid": "1001",
        "sname": "张三",
        "sex": "男",
        "age": "20",
        "addr": "上海",
        "cid": "1"
    },
    {
        "sid": "1002",
        "sname": "李四",
        "sex": "男",
        "age": "22",
        "addr": "杭州",
        "cid": "2"
    },
    {
        "sid": "1003",
        "sname": "赵六",
        "sex": "男",
        "age": "23",
        "addr": "西安",
        "cid": "1"
    }
]
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> 
</head>
<body>
    <table id="tab">
        <tr>
            <td>学号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>年龄</td>
            <td>住址</td>
            <td>班级编号</td>
        </tr>
        <tbody id="tb"></tbody>
    </table>
</body>
table{
    border-collapse: collapse;
    width: 400px;
}
td{
    border:1px solid gray;
    text-align: center;
}
$(function () {
    //1. 窗体加载时,加载外部数据
    $.get("students.json",function(data){
        // 1.1 将得到的数据赋值给表格
        let info = ""
        $(data).each((k,v) => {
            info += "<tr>"
            info += "<td>" + v.sid + "</td>"
            info += "<td>" + v.sname + "</td>"
            info += "<td>" + v.sex + "</td>"
            info += "<td>" + v.age + "</td>"
            info += "<td>" + v.addr + "</td>"
            info += "<td>" + v.cid + "</td>"
            info += "</tr>"
        })
        $("#tb").html(info)

    },"json")
})

image-20240801152222373

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生146

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值