JQuery入门学习及简单案例

1.JQuery的概念

JQuery是基于javascript类库的框架, 它里面提供了许多javascript类库,和一些css样式表的封装, 使用起来比较方便,简化了用户与浏览器的交互, 提高了系统的性能和开发效率。

JQuery设计的宗旨是“write Less,DoMore”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

JQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

2.JQuery快速入门

(1)JQuery下载,【百度网盘vdnc】。
①JQuery-xxx.js是开发版本,给开发人员看的,有良好的缩进和注释;
②JQuery-xxx.min.js是生产版本,在程序中使用,没有缩进和注释,体积小,程序加载快。

(2)导入JQuery到项目中。
(3)在页面引入JQuery库。
在这里插入图片描述

3.JQuery对象和JS对象的区别与转换

因为,JQuery对象和JS对象方法是不通用的,所以两者需要相互转换后才能使用对应的方法。
(1)JQuery对象转换为JS对象:JS对象[索引]JS对象.get(索引)
(2)JS对象转换为JQuery对象:$(JS对象)

4.JQuery的选择器

(1)基本选择器

举例语法描述
标签选择器(元素选择器)$("html标签名")获得所有匹配标签名称的元素
id选择器$("#id属性值")获得与指定id属性值匹配的元素
类选择器$(".class属性值")获得与指定的class属性值匹配的元素
并集选择器$("选择器1,选择器2....")获取多个选择器选中的所有元素

(2)层级选择器

举例语法描述
后代选择器$("A B")选择A元素内部的所有B元素
子选择器$("A > B")选择A元素内部的所有B子元素

(3)属性选择器

举例语法描述
属性名称选择器$("A[属性名]")包含指定属性的选择器
属性选择器$("A[属性名='值']")包含指定属性等于指定值的选择器
复合属性选择器$("A[属性名='值'][]...")包含多个属性条件的选择器

(4)过滤选择器

举例语法描述
首元素选择器:first获得选择的元素中的第一个元素
尾元素选择器:last获得选择的元素中的最后一个元素
非元素选择器:not(selector)不包括指定内容的元素
偶数选择器:even偶数,从 0 开始计数
奇数选择器:odd奇数,从 0 开始计数
等于索引选择器:eq(index)指定索引元素
大于索引选择器:gt(index)大于指定索引元素
小于索引选择器:lt(index)小于指定索引元素
标题选择器:header获得标题(h1~h6)元素,固定写法

(5)表单过滤选择器

举例语法描述
可用元素选择器:enabled获得可用元素
不可用元素选择器:disabled获得不可用元素
单选框选中选择器:checked获得单选/复选框选中的元素
下拉框选中选择器:selected获得下拉框选中的元素

5.JQuery的DOM操作

(1)内容操作

方法描述
html()获取/设置元素的标签体内容
text()获取/设置元素的标签体纯文本内容
val()获取/设置元素的value属性值

(2)属性操作

方法描述
attr()获取/设置元素的属性
removeAttr()删除属性
prop()获取/设置元素的属性
removeProp()删除属性
addClass()添加class属性值
removeClass()删除class属性值
toggleClass()切换class属性

attr()prop()区别?
如果操作的是元素的固有属性,则建议使用prop();如果操作的是元素自定义的属性,则建议使用attr()

toggleClass("one"):判断如果元素对象上存在class="one",则将属性值one删除掉。 如果元素对象上不存在class="one",则添加。

(2)CRUD操作

方法描述
append()在被选元素的结尾插入指定内容
prepend()在被选元素的开头插入内容
appendTo()在被选元素的结尾插入 HTML 元素
prependTo()在被选元素的开头插入 HTML 元素
after()在被选元素后插入指定的内容
before()在被选元素前插入内容
insertAfter()在被选元素后插入 HTML 元素
insertBefore()被选元素前插入 HTML 元素
remove()移除元素
empty()清空元素的所有后代元素

6.JQuery的几个简单案例

(1)隔行换色

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>隔行换色</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>
        //需求:将数据行的奇数行背景色设置为gray,偶数行背景色设置为pink
        $(function () {
            //1. 获取数据行的奇数行的tr,设置背景色为gray
            $("tr:gt(1):odd").css("backgroundColor", "gray");
            //2. 获取数据行的偶数行的tr,设置背景色为pink
            $("tr:gt(1):even").css("backgroundColor", "pink");
        });
    </script>
</head>
<body>
    <table id="tab1" border="1" width="800" align="center">
        <tr>
            <td colspan="5"><input type="button" value="删除"></td>
        </tr>
        <tr style="background-color: #999999;">
            <th><input type="checkbox"></th>
            <th>ID</th>
            <th>名称</th>
            <th>性别</th>
            <th>操作</th>
        </tr>
        <tr>
            <td><input type="checkbox"></td>
            <td>0</td>
            <td>Atlantis</td>
            <td></td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td><input type="checkbox"></td>
            <td>1</td>
            <td>Andersen</td>
            <td></td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td><input type="checkbox"></td>
            <td>2</td>
            <td>长安</td>
            <td></td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
        <tr>
            <td><input type="checkbox"></td>
            <td>3</td>
            <td>安徒生</td>
            <td></td>
            <td><a href="">修改</a>|<a href="">删除</a></td>
        </tr>
    </table>
</body>
</html>

在这里插入图片描述

(2)全选全不选

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>全选和全不选</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>
        //分析:需要保证下边的选中状态和第一个复选框的选中状态一致即可
        function selectAll(obj){
            //获取下边的复选框
            $(".itemSelect").prop("checked",obj.checked);
        }
    </script>

</head>
<body>
<table id="tab1" border="1" width="800" align="center">
    <tr>
        <td colspan="5"><input type="button" value="删除"></td>
    </tr>
    <tr style="background-color: #999999;">
        <th><input type="checkbox" onclick="selectAll(this)"></th>
        <th>ID</th>
        <th>名称</th>
        <th>性别</th>
        <th>操作</th>
    </tr>
    <tr>
        <td><input type="checkbox" class="itemSelect"></td>
        <td>0</td>
        <td>Atlantis</td>
        <td></td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="itemSelect"></td>
        <td>1</td>
        <td>Andersen</td>
        <td></td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="itemSelect"></td>
        <td>2</td>
        <td>长安</td>
        <td></td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="itemSelect"></td>
        <td>3</td>
        <td>安徒生</td>
        <td></td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
</table>
</body>
</html>

在这里插入图片描述

(3)QQ表情选择

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
    <title>QQ表情选择</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <style type="text/css">
        * { margin: 0;padding: 0;list-style: none;}
        .emoji { margin: 50px;}
        ul { overflow: hidden;}
        li { float: left;width: 48px;height: 48px;cursor: pointer;}
        .emoji img { cursor: pointer;}
    </style>
    <script>
        //需求:点击qq表情,将其追加到发言框中
        $(function () {
            //1.给img图片添加onclick事件
            $("ul img").click(function(){
                //2.追加到p标签中即可。
                $(".word").append($(this).clone());
            });
        });
    </script>
</head>
<body>
    <div class="emoji">
        <ul>
            <li><img src="img/01.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/02.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/03.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/04.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/05.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/06.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/07.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/08.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/09.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/10.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/11.gif" height="22" width="22" alt=""/></li>
            <li><img src="img/12.gif" height="22" width="22" alt=""/></li>
        </ul>
        <p class="word">
            <strong>请发言:</strong>
            <img src="img/12.gif" height="22" width="22" alt=""/>
        </p>
    </div>
</body>
</html>

在这里插入图片描述

(4)多选下拉列表的左右移动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>左右移动</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <style>
        #leftName, #btn, #rightName { float: left;width: 100px;height: 300px;}
        #toRight, #toLeft { margin-top: 100px;margin-left: 30px;width: 50px;}
        .border { height: 500px;padding: 100px;}
    </style>
    <script>
        //需求:实现下拉列表选中条目左右选择功能
        $(function () {
            //toRight
            $("#toRight").click(function () {
                //获取右边的下拉列表对象,append(左边下拉列表选中的option)
                $("#rightName").append($("#leftName > option:selected"));
            });

            //toLeft
            $("#toLeft").click(function () {
                //appendTo   获取右边选中的option,将其移动到左边下拉列表中
                $("#rightName > option:selected").appendTo($("#leftName"));
            });
        });
    </script>
</head>
<body>
    <div class="border">
        <select id="leftName" multiple="multiple">
            <option>Atlantis</option>
            <option>Andersen</option>
            <option>长安</option>
            <option>安徒生</option>
        </select>
        <div id="btn">
            <input type="button" id="toRight" value="-->"><br>
            <input type="button" id="toLeft" value="<--">
        </div>
        <select id="rightName" multiple="multiple">
            <option>格林</option>
        </select>
    </div>
</body>
</html>

在这里插入图片描述

(5)广告显示和隐藏

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>广告的自动显示与隐藏</title>
    <style>
        #content { width: 100%;height: 500px;background: #999}
    </style>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>
        /*  需求:
                1. 当页面加载完,3秒后。自动显示广告
                2. 广告显示5秒后,自动消失。
            分析:
                1. 使用定时器来完成。setTimeout (执行一次定时器)
                2. 分析发现JQuery的显示和隐藏动画效果其实就是控制display
                3. 使用  show/hide方法来完成广告的显示
         */
        //入口函数,在页面加载完成之后,定义定时器,调用这两个方法
        $(function () {
            //定义定时器,调用adShow方法 3秒后执行一次
            setTimeout(adShow, 3000);
            //定义定时器,调用adHide方法,8秒后执行一次
            setTimeout(adHide, 8000);
        });

        //显示广告
        function adShow() {
            //获取广告div,调用显示方法
            $("#ad").show("slow");
        }

        //隐藏广告
        function adHide() {
            //获取广告div,调用隐藏方法
            $("#ad").hide("slow");
        }
    </script>
</head>
<body>
    <div>
        <!-- 广告DIV -->
        <div id="ad" style="display: none;">
            <img style="width:100%" src="img/adv.jpg"/>
        </div>
        <!-- 下方正文部分 -->
        <div id="content">
            正文部分
        </div>
    </div>
</body>
</html>

在这里插入图片描述

(6)抽奖

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jquery案例之抽奖</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script language='javascript' type='text/javascript'>
        /* 分析:
                1. 给开始按钮绑定单击事件
                    1.1 定义循环定时器
                    1.2 切换小相框的src属性
                        * 定义数组,存放图片资源路径
                        * 生成随机数。数组索引
                2. 给结束按钮绑定单击事件
                    1.1 停止定时器
                    1.2 给大相框设置src属性
         */
        var imgs = ["img/man00.jpg", "img/man01.jpg", "img/man02.jpg", "img/man03.jpg",
            "img/man04.jpg", "img/man05.jpg", "img/man06.jpg",
        ];
        var startId;//开始定时器的id
        var index;//随机角标
        $(function () {
            //处理按钮是否可以使用的效果
            $("#startID").prop("disabled",false);
            $("#stopID").prop("disabled",true);
            //1. 给开始按钮绑定单击事件
            $("#startID").click(function () {
                // 1.1 定义循环定时器 20毫秒执行一次
                startId = setInterval(function () {
                    //处理按钮是否可以使用的效果
                    $("#startID").prop("disabled",true);
                    $("#stopID").prop("disabled",false);
                    //1.2生成随机角标 0-6
                    index = Math.floor(Math.random() * 7);//0.000--0.999 --> * 7 --> 0.0-----6.9999
                    //1.3设置小相框的src属性
                    $("#img1ID").prop("src",imgs[index]);
                },20);
            });

            //2. 给结束按钮绑定单击事件
            $("#stopID").click(function () {
                //处理按钮是否可以使用的效果
                $("#startID").prop("disabled",false);
                $("#stopID").prop("disabled",true);
                // 1.1 停止定时器
                clearInterval(startId);
                // 1.2 给大相框设置src属性
                $("#img2ID").prop("src",imgs[index]).hide();
                //显示1秒之后
                $("#img2ID").show(1000);
            });
        });
    </script>
</head>
<body>
    <!-- 小像框 -->
    <div style="border-style:dotted;width:160px;height:100px">
        <img id="img1ID" src="img/man00.jpg" style="width:160px;height:100px"/>
    </div>
    <!-- 大像框 -->
    <div style="border-style:double;width:400px;height:300px;position:absolute;left:500px;top:10px">
        <img id="img2ID" src="img/man00.jpg" width="400px" height="300px"/>
    </div>
    <!-- 开始按钮 -->
    <input id="startID" type="button" value="点击开始" style="width:150px;height:150px;font-size:22px">
    <!-- 停止按钮 -->
    <input id="stopID" type="button" value="点击停止" style="width:150px;height:150px;font-size:22px">
</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值