1. 前端--JQuery入门

前端–JQuery入门

1. jQuery简介

  1. JavaScript 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。jQuey是一个快速、简洁的JavaScript框架,在2006年1月由John Resig等人创建。
  2. jQuery的作用:因为以后的工作中,会有一些老项目,大部分都在使用jQuery,jQuery是前端程序员必须会的知识。jQuery可以帮助我们更好的理解JavaScript
  3. jQuery解决了95%的JavaScript兼容问题。我们程序员几乎不用操心兼容问题了,将经历放到具体的业务逻辑上就可以。

2. jQuery的版本

  1. 源码版本:方便我们来读和学习里面的代码。
  2. 压缩版:.min.js 项目上线的时候使用。
1.xxx版本.js // 支持ie低版本浏览器。目前使用最多的版本

2.xxx版本.js // 不支持ie低版本浏览器。移动端使用。用的相对较少。

3.xxx版本.js // 在2的版本上进行了优化。用的少。
  1. 点击下载jQuery的各个版本…
  2. 当然也可以使用jQuery CDN,使用时要确保网络通畅哦!
  3. 我们则使用jquery-1.10.1.js这个版本进行学习。

3. jQuery的优点

  1. 使用简单方便:宗旨:write less ,do more
  2. jQuery能做的事情,JS都能做。
  3. jQuery简单易懂,兼容性好。
  4. 链式编程
  5. 式编程

4. jQuery初体验

  1. jQuery都是用$开头的,$("选择器")事件是一个函数,事件处理函数通过事件的参数传递。
  2. this是JavaScript里面的对象,$(this) 是jQuery的对象。
  3. hide是隐藏,如果加了时间,会有动画效果。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jQuery初体验</title>
    <script src="js/jquery-1.10.1.js"></script>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
<button class="box"></button>
<button class="box"></button>
</body>
<script>
    //js版本
    // var box = document.getElementsByClassName("box");
    // for (let i = 0; i < box.length; i++) {
    //     box[i].onclick = function () {
    //         alert(i);
    //     }
    // }

    //jq版本
    $(".box").click(function () {
        $(this).hide(1000);
    })

</script>
</html>
4.1 js对象和jq对象之间的转换
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>js对象和jq对象之间的转换</title>
    <script>
        window.onload = function () {
            //js写法
            var btn = document.getElementById("btn");
            // btn.οnclick=function(){
            //     alert(111);
            // }
            
            // 将js对象转成jq对象,只需要用$()将js对象包裹起来就转成了jq对象了。
            // $(btn).click(function(){
            //     alert(111);
            // });
            // $(".btn").click(function(){
            //     alert(111);
            // });
            
            console.dir(btn);//null
            console.dir($(".btn"));
            console.dir($);
            console.dir($===jQuery);//true

            // 将jq对象转成js对象只需要 在jq对象后面拼上[index].
            var btn1 = $(".btn")[0];
            btn1.onclick = function () {
                alert(111);
            };

            //jquery对象转js对象,还可以通过jq对象.get(index);的形式进行转换。
            var newBtn2 = $(".btn").get(1);
            newBtn2.onclick = function () {
                alert(2222);
            }
        }

    </script>
    <script src="js/jquery-1.10.1.js"></script>
</head>
<body>
<button class="btn">按钮</button>
<button class="btn">按钮</button>
</body>
</html>

在这里插入图片描述

4.2 js和jq页面加载事件的区别

无论JavaScript中的onload还是jQuery中的load事件,他们的运行时机都是当文档内容完全加载完成(包括图像、脚本文件、CSS文件等)之后,才执行当前的事件处理函数。

  • JavaScript中window.onload事件只会执行一个。
  • 但是jQuery中因为是调用方法,方法可以多次调用,可以执行多次,后面的不会覆盖前面的。
  • 但是jQuery中的 $(document).ready(),加载完成之后就可以执行了,不需要等到图片加载完成。可以注册多个相同的事件。
  • 下面页面的效果是窗口弹出顺序为:5---->6---->7---->加载按钮---->2---->3----->4
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>js和jq页面加载事件的区别</title>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        window.onload=function(){
            alert(1);
        };
        window.onload=function(){
            alert(2);
        };
        $(window).load(function(){
            alert(3);//为啥没有执行
        });

        $(window).load(function(){
            alert(4);//为啥没有执行,因为没有吧jq放在上面
        });

        //  js中document没有onload方法
        $(document).ready(function(){
            alert(5);
        });
        // 相当于 $(document).ready()简写方式
        $(function(){
            alert(6);
        });
        $(function(){
            alert(7);
        });
    </script>

</head>
<body>
<button id="btn">按钮</button>
</body>
</html>
4.3 jq给div设置css样式
  1. eq(index) 获取jq对象中,多个元素中的一个。注意要与js对象和jq对象之间的转换区分开来。

  2. 单个属性设置: css("属性名","属性值");

    • 链式编程 $("div").css("width","200px").css("height","200px").css("background-color","red");
  3. 多个属性设置:

    • $("选择器").css({"属性名":"属性值","属性名1":"属性值1","属性名2":"属性值2"});
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jq给div设置css样式</title>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        $(function () {
            //$("button")[0]这个是将jq对象转成js对象,注意区分
            // var btn1 = $("button").eq(0);
            // btn1.click(function(){
            //     alert(1);
            // });
            // console.log(btn1);

            $("button").eq(0).click(function () {
                $("div").css("width", "250px");
            });

            $("button").eq(1).click(function () {
                $("div").css("height", "250px");
            });

            $("button").eq(2).click(function () {
                $("div").css("background-color", "pink");
            });
            $("button").eq(3).click(function () {
                // $("div").css("width","250px");
                // $("div").css("height","250px");
                // $("div").css("background-color","pink");
                // $("div").css({"width":"250px","height":"250px","backgroundColor":"pink"})
                $("div").css("width", "250px").css("height", "250px").css("background-color", "pink");
            });

            $("button").eq(4).click(function () {
                var h = $("div").css("backgroundColor");
                console.log(h);
            })
        })

    </script>
</head>
<body>
<button>变宽</button>
<button>变高</button>
<button>变色</button>
<button>三变</button>
<button>读取</button>
<div></div>
</body>
</html>
4.4 jq设置和读取标签的属性
  1. 设置标签属性:

    • 单标签:目标.attr("属性名","属性值");
      • 链式编程:目标.attr("属性名","属性值").attr("属性名","属性值");
    • 多属性设置
      • 目标.attr({"属性名":"属性值","属性名1":"属性值1"});
  2. 获取属性值

    • 目标.attr("属性名");
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jquery设置和读取标签的属性</title>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        $(function () {
            console.log("打印所有的div:");
            console.log($("div"));

            $("button").eq(0).click(function () {
                console.log("点击button之后:");
                // jq给div中第一个元素设置属性
                $("div").eq(0).attr("title", "你好1");
                // js给div中第一个元素设置属性
                // var divElement = document.getElementsByTagName("div")[0];
                // divElement.setAttribute("title", "你好");


                // js给所有的div设置属性。
                // var divElements=document.getElementsByTagName("div");
                // for (let i = 0; i < divElements.length; i++) {
                //     divElements[i].setAttribute("title","你好");
                // }

                // jq给元素设置属性
                // $("div").eq(1).attr("title","你好2");
                // $("div").eq(1).attr("num","222");
                // 链式编程
                $("div").eq(1).attr("title","你好2").attr("num","222");
                $("div").css("background-color","red");

                console.log("点击button打印所有的div:");
                console.log($("div"));
                
                console.log("jq获取元素属性值:");
                // jq获取元素属性值
                var atVlue = $("div").eq(1).attr("title");
                console.log(atVlue);
            });
        });
    </script>
</head>
<body>
<button>按钮</button>
<div title="1">我是一个div</div>
<div title="2">我第二个div</div>
</body>
</html>
4.5 jq设置和获取标签的内容
  1. 设置
    • 目标.text("文本内容"); 和innerText用法一样。
    • 目标.html("html内容"); 和innerHTML 用法一样。
  2. 获取
    • 目标.text(); 获取html内容,不包含标签。
    • 目标.html(): 获取html内容,包含标签。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jq设置和获取标签的内容</title>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        $(function () {
            $("#btn").click(function () {
                console.log($("#box").html());
                console.log($("#box").text());
            });

            $("#btn1").click(function () {
                // $("#box").html("<h2>设置div内容</h2>");
                $("#box").text("<h2>设置div内容</h2>");
            })
        })
    </script>
</head>
<body>
<button id="btn">获取</button>
<button id="btn1">设置</button>
<div id="box"><h1>我是div内容</h1></div>
</body>
</html>
4.6 jq简单动画效果

显示隐藏效果:

  • hide(时间) 隐藏,对角线隐藏
  • show(时间) 显示,对角线显示
  • toggle(时间) 如果是显示状态,就隐藏,如果是隐藏状态就显示

卷帘门效果:

  • slideUp(时间) 隐藏 上拉
  • slideDown(时间) 显示 下拉
  • slideToggle(时间) 根据显隐效果自动切换

淡入淡出效果:

  • fadeIn(时间) 淡入
  • fadeOut(时间) 淡出
  • fadeToggle(时间) 根据显隐效果自动切换
  • fadeTo(时间, 透明度) 调整透明度。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jq简单动画效果</title>
    <style>
        #box {
            width: 800px;
            height: 800px;
            background-color: lightgreen;
        }
    </style>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        $(function () {

            $("button").eq(0).click(function () {
                $("#box").hide(2000);
            });
            $("button").eq(1).click(function () {
                $("#box").show(2000);
            });
            // var flag=true;
            $("button").eq(2).click(function () {
                // if(flag==true){
                //     $("#box").hide(5000);
                // }else{
                //     $("#box").show(5000);
                // }
                // flag=!flag;
                $("#box").toggle(2000);
            });


            $("button").eq(3).click(function () {
                $("#box").slideUp(2000);
            });
            $("button").eq(4).click(function () {
                $("#box").slideDown(2000);
            });
            $("button").eq(5).click(function () {
                $("#box").slideToggle(2000);
            });

            $("button").eq(6).click(function () {
                console.log(123);
                $("#box").fadeIn(1000);//显示
            });
            $("button").eq(7).click(function () {
                $("#box").fadeOut(1000);//消失
            });
            $("button").eq(8).click(function () {
                $("#box").fadeTo(1000, 0.4);//消失
            });
            $("button").eq(9).click(function () {
                $("#box").fadeToggle(1000);//消失
            });
        })
    </script>
</head>
<body>
<div>
    <button>hide</button>
    <button>show</button>
    <button>toggle</button>
    <br>
    <br>
    <button>slidUp</button>
    <button>slidDown</button>
    <button>slidToggle</button>
    <br>
    <br>
    <button>fadeIn</button>
    <button>fadeOut</button>
    <button>fadeTo</button>
    <button>fadeToggle</button>
    <br>
    <br>
    <div id="box"></div>
</div>
</body>
</html>
4.7 jq常用选择器

css中能用的选择器在jq中都能用

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jq常用选择器</title>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        // css中能用的选择器在jq中都能用
        $(function () {

            $("button").eq(0).click(function () {
                // 标签选择器
                $("p").css("color", "lightgreen")
            });
            $("button").eq(1).click(function () {
                // 类选择器
                $(".left").css("color", "blue")
            });

            $("button").eq(2).click(function () {
                // id选择器
                $("#box").css("color", "pink")
            });


            $("button").eq(3).click(function () {
                // 全局选择器
                $("*").css("color", "green")
            });

            $("button").eq(4).click(function () {
                // 多选择器
                $("h1,h2,h3").css("color", "lightblue")
            });


            $("button").eq(5).click(function () {
                // 后代选择器
                $("ul li").css("color", "blue")
            });

            $("button").eq(6).click(function () {
                // 父子选择器
                $(".box>div").css("border", "10px solid pink")//文本属性有继承性
            });

            $("button").eq(7).click(function () {
                // 兄弟选择器,只一个
                $("p+div").css("color", "blue");
            });

            $("button").eq(8).click(function () {
                // 当前p标签后面的所有的兄弟选择器。
                $("p~div").css("color", "blue");
            });
        })
    </script>
</head>
<body>
<button>选择所有段落标签</button>
<button>选择class为left的标签</button>
<button>选择id为box的标签</button>
<button>选择所有标签</button>
<button>选择所有标题标签</button>
<br>
<br>
<button>选择ul里面的li标签</button>
<button>选择类名box盒子的第一级子盒子添加边框</button>
<button>选择p后紧挨着的一个同级div</button>
<button>选择p后的所有同级div</button>

<p>段落标签</p>
<p>段落标签</p>
<p>段落标签</p>

<div class="left">类选择器</div>
<div class="left">类选择器</div>

<div id="box">id选择器</div>
    <h1>标题1标签</h1>
    <h2>标题2标签</h2>
    <h3>标题3标签</h3>
<ul>
    <li>ul列表项</li>
    <li>ul列表项</li>
    <li>ul列表项</li>
    <div>我也是div</div>
</ul>
<ol>
    <li>ol列表项</li>
    <li>ol列表项</li>
    <li>ol列表项</li>
</ol>

<div class="box">
    <div>
        第一级子div
        <div>
            &nbsp;&nbsp;第二级子div
            <div>&nbsp;&nbsp;&nbsp;&nbsp;第三级子div</div>
        </div>
    </div>
    <div>第一级子div</div>
    <div>第一级子div</div>
</div>
</body>
</html>
4.8 jq过滤选择器
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>jq过滤选择器</title>
    <script src="js/jquery-1.10.1.js"></script>
    <style>
        ul,
        li {
            list-style: none;
        }
    </style>
    <script>
        $(function () {
            // li里面的第一个元素
            $("button").eq(0).click(function () {
                // $("li").eq(0).css("color","lightgreen");
                // $("li").first().css("color","lightgreen");
                $("li:first").css("color", "lightgreen");
            });

            // li里面的最后一个元素
            $("button").eq(1).click(function () {
                // $("li").eq($("li").length-1).css("color","lightgreen");
                // $("li").last().css("color","lightgreen");
                $("li:last").css("color", "lightgreen");
            });
            // li里面的 下标为偶数的行
            $("button").eq(2).click(function () {
                $("li:even").css("color", "lightgreen");
            });

            // li里面的 下标为奇数的行
            $("button").eq(3).click(function () {
                $("li:odd").css("color", "lightgreen");
            });
            // li里面 隔行变色
            $("button").eq(4).click(function () {
                $("li:odd").css("background-color", "lightgreen");
                $("li:even").css("background-color", "lightpink")
            });
            // li里面的 下标为5的元素
            $("button").eq(5).click(function () {
                // $("li").eq(5).css("color","lightgreen");
                $("li:eq(5)").css("color", "lightgreen");
            });
            // li里面的 下标大于5的元素
            $("button").eq(6).click(function () {
                $("li:gt(5)").css("color", "lightgreen");
            });
            // li里面的 下标小于5的元素
            $("button").eq(7).click(function () {
                $("li:lt(5)").css("color", "lightgreen");
            });

            // li里面的 除了下标为2的元素以外的元素
            $("button").eq(8).click(function () {
                // var col=$("li:eq(2)").css("color");
                // $("li").css("color","lightgreen");
                // $("li:eq(2)").css("color",col);
                $("li:not(:eq(2))").css("color", "lightgreen");

            });
            // li里面的  除了最后一个元素以外的元素
            $("button").eq(9).click(function () {
                $("li:not(:last)").css("color", "pink");
            })
        })
    </script>
</head>
<body>
<button>选择第一个li</button>
<button>选择最后一个li</button>
<button>选择所有编号为偶数个li</button>
<button>选择所有编号为奇数个li</button>
<button>隔行变色</button>
<br>
<br>
<button>选择下标等于第5个的li</button>
<button>选择下标大于第5个的li</button>
<button>选择下标小于第5个的li</button>
<button>选择所有li排除下标为2的</button>
<button>选择所有li排除最后一个</button>

<ul>
    <li>1这是一个li</li>
    <li>2这是一个li</li>
    <li>3这是一个li</li>
    <li>4这是一个li</li>
    <li>5这是一个li</li>
    <li>6这是一个li</li>
    <li>7这是一个li</li>
    <li>8这是一个li</li>
    <li>9这是一个li</li>
    <li>10这是一个li</li>
</ul>
</body>
</html>

5. jQuery练习案例

5.1 照相机品牌列表

在这里插入图片描述

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>照相机品牌列表</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #box {
            width: 600px;
            padding: 10px;
            margin: 100px auto 0px;
        }

        ul, li {
            list-style: none;
        }

        .clearfix:after {
            content: "";
            display: block;
            clear: both;
        }

        #box {
            border: 2px solid #ccc;
        }

        #box > ul > li {
            float: left;
            width: 200px;
            text-align: center;
            height: 25px;
            line-height: 25px;
        }

        #box > .showAll {
            width: 200px;
            text-align: center;
            margin: 20px auto;
            height: 25px;
            line-height: 25px;
            border: 1px solid #ccc;
            cursor: pointer;
            background: url(../img/down.gif) 20px center no-repeat;
        }

        .title {
            width: 200px;
            text-align: center;
            margin: 20px auto;
            height: 25px;
            line-height: 25px;
            cursor: pointer;
        }
    </style>
    <script src="js/jquery-1.10.1.js"></script>
    <script>
        $(function () {
            //定义一个标识
            var flag = true;
            var str = "";
            // 先让中间的相机品牌隐藏。
            // $("#box>ul>li:gt(2):not(:last)").hide();
            // 第二种写法,先写小于,后写大于。
            $("#box>ul>li:lt(12):gt(2)").hide();

            // 单击按钮
            $(".showAll").click(function () {
                //每次单击,先修改标识状态。
                flag = !flag;
                // 修改按钮图片
                if (flag) {
                    $(this).css("backgroundImage", "url(../img/down.gif)");
                    str = "显示所有内容";
                    // $("#box>.showAll").text("隐藏所有内容");
                } else {
                    $(this).css("backgroundImage", "url(../img/up.gif)");
                    str = "隐藏所有内容";
                    // $("#box>.showAll").text("显示所有内容");
                }
                // 修改按钮文字
                $(this).text(str);
                $("#box>ul>li:gt(2):not(:last)").slideToggle(2000);
            });


        })
    </script>
</head>
<body>
<div id="box">
    <div class="title">照相机品牌列表</div>
    <ul class="clearfix">
        <li>佳能</li>
        <li>索尼</li>
        <li>三星</li>
        <li>尼康</li>
        <li>松下</li>
        <li>卡西欧</li>
        <li>富士</li>
        <li>柯达</li>
        <li>宾得</li>
        <li>理光</li>
        <li>奥林巴斯</li>
        <li>明基</li>
        <li>其他品牌相机</li>
    </ul>
    <div class="showAll">显示所有内容</div>
</div>

</body>
</html>

在这里插入图片描述

5.2 对联广告

注意本案例使用的是jQuery CDN ,测试请确保网络畅通。

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>对联广告</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        p {
            height: 40px;
        }

        div {
            width: 100px;
            height: 300px;
            background-color: lightgreen;
            position: fixed;
            top: 0px;
        }

        #box1 {
            left: 0px;
        }

        #box2 {
            right: 0px;
        }

        div > span {
            display: block;
            width: 20px;
            height: 20px;
            background-color: pink;
            text-align: center;
            line-height: 20px;
            position: absolute;
            cursor: pointer;
        }

        #box1 > span {
            right: 0px;
        }

        #box2 > span {
            left: 0px;
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function () {
            $("div>span").click(function () {
                $(this).parent("div").hide(500);
            })
        })
    </script>
</head>
<body>
<div id="box1">
    <span>×</span>
</div>
<div id="box2">
    <span>×</span>
</div>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
<p>段落</p>
</body>
</html>

鼠标划入事件

     $("div").mouseenter(function(){
     	  
     })
5.3 轮播图导航圈排他思想
  1. addClass() 给dom对象添加一个class样式。
  2. removeClass() 给dom对象删除一个class样式。
  3. siblings() 当前dom对象的所有的兄弟元素。
  4. attr() 添加属性。
  5. removeAttr() 移除属性。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>轮播图导航圈排他思想</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul,li{
           list-style:none;
        }
        .clearfix:after{
            content:"";
            display:none;
            clear:both;
        }
        ul>li{
            float:left;
            border: 1px solid #ccc;
            border-radius:50%;
            height:20px;
            width:20px;
            cursor:pointer;
        }
        ul>.current{
            background-color: lightgreen;
        }

    </style>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function(){
            $("ul>li").click(function(){
                // $(this).addClass("current");
                // $(this).siblings().removeClass("current");
                $(this).addClass("current").siblings().removeClass("current");
            })
        })

    </script>
</head>
<body>
<ul>
    <li class="current"></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
</body>
</html>
5.4 自定义单选和多选按钮
  1. hasClass("current") 判断一个dom对象是否拥有current,如果有,返回true,否则返回false。
  2. toggleClass("current") 判断一个对象是否拥有current样式,如果有,就删除,如果没有就添加。
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>自定义单选和多选按钮</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        ul, li {
            list-style: none;
        }

        #radio > li {
            background: url(../img/radio.gif) 0 0 no-repeat;
            height: 18px;
            padding-left: 20px;
            cursor: pointer;
        }

        #radio > .current {
            background: url(../img/radio.gif) 0 -16px no-repeat;
        }

        #checkbox > li {
            background: url(../img/duo1.png) 0 0 no-repeat;
            height: 18px;
            padding-left: 20px;
            cursor: pointer;
        }

        #checkbox > .current {
            background: url(../img/duo2.png) 0 0 no-repeat;
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function () {
            $("#radio>li").click(function () {
                $(this).addClass("current").siblings().removeClass("current");
            })

            $("#checkbox>li").click(function () {
                // 判断点击的对象是否已经拥有了current样式
                // var flag=$(this).hasClass("current");
                // console.log(111);
                // if(flag){
                //     // 如果拥有此样式,就删除此样式
                //     $(this).removeClass("current");
                // }else{
                //     // 如果没有此样式,就添加此样式。
                //     $(this).addClass("current");
                // }
                $(this).toggleClass("current");
            })

        })
    </script>
</head>
<body>
<ul id="radio">
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
    <li>我是一个单选框</li>
</ul>

<ul id="checkbox">
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
    <li>我是一个多选框</li>
</ul>
</body>
</html>
5.5 模拟下拉菜单
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>模拟下拉菜单</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        ul, li {
            list-style: none;
        }

        .sel1 {
            width: 100px;
            margin: 100px auto 0px;
        }

        .sel1 > .selBox {
            height: 27px;
            border: 1px solid #ccc;
            padding-left: 10px;
            line-height: 27px;
            background: url(../img/xiala.png) right center no-repeat;
        }

        .sel1 > .selList {
            width: 100px;
            border: 1px solid #ccc;
            /*border-top:none;*/
            position: relative;
            top: -1px;
            display: none;
        }

        .sel1 > .selList > li {
            height: 27px;
            line-height: 27px;
            padding-left: 10px;
            cursor: pointer;
        }

        .sel1 > .selList > li:hover {
            background-color: lightgreen;
        }

        .pink {
            background-color: pink;
        }
    </style>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function () {
            // 判断初始时候,默认选中的下拉菜单项。设置颜色。
            var text = $(".selBox").text();
            for (let i = 0; i < $(".sel1 > .selList>li").length; i++) {
                if (text === $(".sel1>.selList >li").eq(i).text()) {
                    $(".sel1>.selList> li").eq(i).addClass("pink");
                }
            }

            //单击按钮的时候,展示下拉菜单。
            $(".selBox").click(function () {
                $(".selList").toggle();
            });
            // 选中下拉菜单项的时候,将下拉菜单项中的文本添加到div中
            // 隐藏ul下拉菜单。
            //将选中的选项颜色变成黄色。
            $(".sel1>.selList>li").click(function () {
                $(".selBox").text($(this).text());
                $(".selList").hide();
                $(this).addClass("pink").siblings().removeClass("pink");
            });
        });
    </script>
</head>
<body>
<div class="sel1">
    <div class="selBox">年付</div>
    <ul class="selList">
        <li>月付</li>
        <li>季付</li>
        <li>年付</li>
    </ul>
</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值