jQuery的应用

jQuery的应用

一、使用JQ完成首页的定时广告弹出

1.需求分析

在首页中(logo的上方)显示一个广告图片(页面加载后,间隔3秒弹出广告图片,再间隔3秒后隐藏广告图片)。【使用jQuery实现】

2.技术分析

使用jQuery中的相关技术

3.实现步骤
  • 第一步:引入jQuery相关的文件
  • 第二步:书写页面加载函数
  • 第三步:在页面加载函数中,获取显示广告图片的元素。
  • 第四步:设置定时操作(显示广告图片的函数)
  • 第五步:在显示广告图片的函数中,使用jQuery的方法让广告图片显示(show())
  • 第六步:清除显示广告图片的定时操作
  • 第七步:设置定时操作(隐藏广告图片的函数)
  • 第八步:在隐藏广告图片的函数中,使用jQuery的方法让广告图片隐藏(hide())
  • 第九步:清除隐藏广告图片的定时操作
4.代码实现
<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
    <script>
        $(function(){
            //1.书写显示广告图片的定时操作
            time = setInterval("showAd()",3000);
        });
        
        //2.书写显示广告图片的函数
        function showAd(){
            //3.获取广告图片,并让其显示
            //$("#img2").show(1000);
            //$("#img2").slideDown(5000);
            $("#img2").fadeIn(4000);
            //4.清除显示图片定时操作
            clearInterval(time);
            //5.设置隐藏图片的定时操作
            time = setInterval("hiddenAd()",3000);
        }
        
        function hiddenAd(){
            //6.获取广告图片,并让其隐藏
            //$("#img2").hide();
            //$("#img2").slideUp(5000);
            $("#img2").fadeOut(6000);
            //7.清除隐藏图片的定时操作
            clearInterval(time);
        }
    </script>
5.补充内容

toggle的使用:显示图片和隐藏图片

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>toggle的使用</title>
        <style>
            div{
                border: 1px solid white;
                width: 500px;               
                height: 350px;
                margin: auto;
                text-align: center;
            }
        </style>
        <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
        <script>
            $(function(){
                $("#btn").click(function(){
                    $("#img1").toggle();
                });
            });
        </script>
    </head>
    <body>
        <div>
            <input type="button" value="显示/隐藏" id="btn" /><br />|
            ![](../img/飞机05.gif)
        </div>
    </body>
</html>

二、使用JQ完成隔行变色

1.需求分析

在页面加载的时候让显示用户的表格进行隔行换色显示,效果如下:使用JQ实现!

隔行变色.png
2.技术分析

需要使用jquery的选择器(基本选择器、基本过滤选择器)

还需要使用jquery的CSS的方法(css(name,value))

如果CSS样式已经由美工写好,此时可以使用jquery的CSS类操作
addClass(class | fn)

3.步骤分析
  • 第一步:引入jquery的类库
  • 第二步:直接写页面加载函数
  • 第三步:直接使用jquery的选择器(组合选择)拿到需要操作的元素(奇数行和偶数行)
  • 第四步:分别使用CSS的方法(css(name,value))对奇数行和偶数行设置背景颜色。
4.代码实现
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>使用jQuery完成表格隔行换色</title>
        <link rel="stylesheet" href="../css/style.css" />
        <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
        <script>
            //1.页面加载
            $(function(){
                //方式一:使用内部样式
                /*//2.获取tbody下面的偶数行并设置背景颜色
                $("tbody tr:even").css("background-color","yellow");
                //3.获取tbody下面的奇数行并设置背景颜色
                $("tbody tr:odd").css("background-color","green");*/
                
                //方式二:使用外部样式,记得引入外部CSS样式文件
                //2.获取tbody下面的偶数行并设置背景颜色
                $("tbody tr:even").addClass("even");
                $("tbody tr:even").removeClass("even");
                //3.获取tbody下面的奇数行并设置背景颜色
                $("tbody tr:odd").addClass("odd");
            });
        </script>
        
    </head>
    <body>
        <table border="1" width="500" height="50" align="center" id="tbl" id="tbl">
            <thead>
                <tr>
                    <th>编号</th>
                    <th>姓名</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <tbody>
                <tr >
                    <td>1</td>
                    <td>张三</td>
                    <td>22</td>
                </tr>
                <tr >
                    <td>2</td>
                    <td>李四</td>
                    <td>25</td>
                </tr>
                <tr >
                    <td>3</td>
                    <td>王五</td>
                    <td>27</td>
                </tr>
                <tr >
                    <td>4</td>
                    <td>赵六</td>
                    <td>29</td>
                </tr>
                <tr >
                    <td>5</td>
                    <td>田七</td>
                    <td>30</td>
                </tr>
                <tr >
                    <td>6</td>
                    <td>汾九</td>
                    <td>20</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

三、使用JQ完成全选全不选

1.需求分析

在系统后台进行人员管理时,进行批量删除,使用jq完成全选和全不选

全选全不选.png
2.技术分析
  • 需要使用jquery的选择器(id选择器、类选择器)
  • 需要使用jquery的属性操作方法 prop()
3.步骤分析
  • 第一步:引入jquery文件
  • 第二步:书写页面加载函数
  • 第三步:为上面的复选框绑定单击事件
  • 第四步:将下面所有的复选框的选中状态设置成跟上面的一致!
4.代码实现
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>使用jQuery完成复选框的全选和全不选</title>
        <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
        <!--<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>-->
        <script>
            $(function(){
                $("#select").click(function(){
                    //获取下面所有的 复选框并将其选中状态设置跟编号的前面 复选框保持一致。
                    //attr方法与JQ的版本有关,在1.8.3及以下有效。
                    //$("tbody input").attr("checked",this.checked);
                    $("tbody input").prop("checked",this.checked);
                });
            });
        </script>
        
    </head>
    <body>
        <table border="1" width="500" height="50" align="center" id="tbl" >
            <thead>
                <tr>
                    <td colspan="4">
                        <input type="button" value="添加" />
                        <input type="button" value="删除" />
                    </td>
                </tr>
                <tr>
                    <th><input type="checkbox" id="select"></th>
                    <th>编号</th>
                    <th>姓名</th>
                    <th>年龄</th>
                </tr>
            </thead>
            <tbody>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>1</td>
                    <td>张三</td>
                    <td>22</td>
                </tr>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>2</td>
                    <td>李四</td>
                    <td>25</td>
                </tr>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>3</td>
                    <td>王五</td>
                    <td>27</td>
                </tr>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>4</td>
                    <td>赵六</td>
                    <td>29</td>
                </tr>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>5</td>
                    <td>田七</td>
                    <td>30</td>
                </tr>
                <tr >
                    <td><input type="checkbox" class="selectOne"/></td>
                    <td>6</td>
                    <td>汾九</td>
                    <td>20</td>
                </tr>
            </tbody>
        </table>
    </body>
</html>

注意:attr在jquery1.11版本不适用,采用prop()来替代(在各个版本都适用)。

在jquery中如何调用方法?

元素.方法()

四、使用JQ完成省市二级联动

1.需求分析
省市二级联动.png
2.技术分析
2.1数组的遍历操作

方式一:each(callback)

$(function(){
    // 全选/ 全不选
    $("#checkallbox").click(function(){
        var isChecked = this.checked;
        //使用对象访问的方式进行遍历,语法:$().each(function(){})
        $("input[name='hobby']").each(function(){
            this.checked = isChecked;
        });
    });
});

方式二:$.each(object,[callback])

$.each( [0,1,2], function(i, n){
  alert( "Item #" + i + ": " + n );
});
2.2文档处理操作

追加内容

apend:  A.append(B)  将B追加到A的内容的末尾处
appendTo: A.appendTo(B)  将A加到B内容的末尾处
3.步骤分析
  • 第一步:确定事件(change事件),在绑定的函数里面获取用户选择的省份
  • 第二步:创建二维数组来存储省份和城市
  • 第三步:遍历二维数组中的省份(与用户选择的省份进行比较)【使用JQ的遍历操作】
  • 第四步:接着遍历数组中的城市
  • 第五步:创建一个城市文本节点
  • 第六步:创建option元素节点
  • 第七步:将文本节点添加到元素节点中【使用JQ的文档操作方法】
  • 第八步:获取第二个下拉列表并将option元素节点添加进去
  • 第九步:清除第二个下拉列表的option内容
4.代码实现

JQ代码:

<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
    <script>
        $(function(){
            //2.创建二维数组用于存储省份和城市
            var cities = new Array(3);
            cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
            cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
            cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
            cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
            
            $("#province").change(function(){
                //10.清除第二个下拉列表的内容
                $("#city").empty();
                
                //1.获取用户选择的省份
                var val = this.value;
                //alert(val);
                //3.遍历二维数组中的省份
                $.each(cities,function(i,n){
                    //alert(i+":"+n);
                    //4.判断用户选择的省份和遍历的省份
                    if(val==i){
                        //5.遍历该省份下的所有城市
                        $.each(cities[i], function(j,m) {
                            //alert(m);
                            //6.创建城市文本节点
                            var textNode = document.createTextNode(m);
                            //7.创建option元素节点
                            var opEle = document.createElement("option");
                            //8.将城市文本节点添加到option元素节点中去
                            $(opEle).append(textNode);
                            //9.将option元素节点追加到第二个下拉列表中去
                            $(opEle).appendTo($("#city"));
                        });
                    }
                });
                
            });
        });
    </script>

HTML代码:

<td>
    <!--2.确定事件,通过函数传参的方式拿到改变后的城市-->
    <select id="province">
        <option>--请选择--</option>
        <option value="0">湖北</option>
        <option value="1">湖南</option>
        <option value="2">河北</option>
        <option value="3">河南</option>
    </select>
    <select id="city">
        
    </select>
</td>

五、使用JQ完成下拉列表左右选择

1.需求分析
下拉列表左右选择.png
2.分析
  • 第一步:确定事件(鼠标单击事件click)
  • 第二步:获取左侧下拉列表被选中的option($(“#left option:selected”)) [假设左侧select定义了一个id=left]
  • 第三步:将获取到的option添加到右侧的下拉列表中去。(append方法的使用)
3.代码实现

JQ代码:

<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
<script>
    $(function(){
        /*1.选中单击去右边*/
        $("#selectOneToRight").click(function(){
            $("#left option:selected").appendTo($("#right"));
        });
        
        /*2.单击全部去右边*/
        $("#selectAllToRight").click(function(){
            $("#left option").appendTo($("#right"));
        });
        
        /*3.选中双击去右边*/
        $("#left option").dblclick(function(){
            $("#left option:selected").appendTo($("#right"));
        });
    });
</script>

HTML代码:

<td>
    <span style="float: left;">
        <font color="green" face="宋体">已有商品</font><br/>
        <select multiple="multiple" style="width: 100px;height: 200px;" id="left">
            <option>IPhone6s</option>
            <option>小米4</option>
            <option>锤子T2</option>
        </select>
        <p><a href="#" style="padding-left: 20px;" id="selectOneToRight">>></a></p>
        <p><a href="#" style="padding-left: 20px;" id="selectAllToRight">>>></a></p>
    </span>
    <span style="float: right;">
        <font color="red" face="宋体">未有商品</font><br/>
        <select multiple="multiple" style="width: 100px;height: 200px;" id="right">
            <option>三星Note3</option>
            <option>华为6s</option>
        </select>
        <p><a href="#" ><<</a></p>
        <p><a href="#" ><<<</a></p>
    </span>
</td>

六、使用JQ完成表单校验

表单校验.PNG

注意:使用validate校验,导入插件

JS代码:

<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
<!--引入validate插件js文件-->
<script type="text/javascript" src="../js/jquery.validate.min.js" ></script>
<!--引入国际化js文件-->
<script type="text/javascript" src="../js/messages_zh.js" ></script>
<script>
    $(function(){
        $("#registForm").validate({
            rules:{
                user:{
                    required:true,
                    minlength:3
                },
                password:{
                    required:true,
                    digits:true,
                    minlength:6
                },
                repassword:{
                    required:true,
                    equalTo:"[name='password']"
                },
                email:{
                    required:true,
                    email:true
                },
                username:{
                    required:true,
                    maxlength:5
                },
                sex:{
                    required:true
                }
            },
            messages:{
                user:{
                    required:"用户名不能为空!",
                    minlength:"用户名不得少于3位!"
                },
                password:{
                    required:"密码不能为空!",
                    digits:"密码必须是整数!",
                    minlength:"密码不得少于6位!"
                },
                repassword:{
                    required:"确认密码不能为空!",
                    equalTo:"两次输入密码不一致!"
                },
                email:{
                    required:"邮箱不能为空!",
                    email:"邮箱格式不正确!"
                },
                username:{
                    required:"姓名不能为空!",
                    maxlength:"姓名不得多于5位!"
                },
                sex:{
                    required:"性别必须勾选!"
                }
            },
            errorElement: "label", //用来创建错误提示信息标签,validate插件默认的就是label
            success: function(label) { //验证成功后的执行的回调函数
                //label指向上面那个错误提示信息标签label
                label.text(" ") //清空错误提示消息
                    .addClass("success"); //加上自定义的success类
            }
        });
    });
</script>

HTML代码:

<form action="#" method="get" id="registForm">
    <div id="father">
        <div id="form2">
            <table border="0px" width="100%" height="100%" align="center" cellpadding="0px" cellspacing="0px" bgcolor="white">
                <tr>
                    <td colspan="2" >
                                  
                        <font size="5">会员注册</font>   USER REGISTER 
                    </td>
                </tr>
                <tr>
                    <td width="180px">
                              
                              
                           
                        <label for="user" >用户名</label>
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="text" name="user" size="35px" id="user"/>
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        密码
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="password"  name="password" size="35px" id="password" />
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        确认密码
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="password" name="repassword" size="35px"/>
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        Email
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="text" name="email" size="35px" id="email"/>
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        姓名
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="text" name="username" size="35px"/>
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        性别
                    </td>
                    <td>
                        <span style="margin-right: 155px;">
                            <em style="color: red;">*</em>   <input type="radio" name="sex" value="男"/>男
                            <input type="radio" name="sex" value="女"/>女<em></em>
                            <label for="sex" class="error" style="display: none;"></label>
                        </span>
                        
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        出生日期
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="text" name="birthday"  size="35px"/>
                    </td>
                </tr>
                <tr>
                    <td>
                              
                              
                           
                        验证码
                    </td>
                    <td>
                        <em style="color: red;">*</em>   <input type="text" name="yanzhengma" />
                        ![](../img/yanzhengma.png)
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                              
                              
                              
                              
                              
                              
                        <input type="submit" value="注      册" height="50px"/>
                    </td>
                </tr>
            </table>
        </div>
    </div>
</form>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,907评论 25 707
  • 内容回顾 jQuery的书写步骤引入JQ的包(xxx.js)书写JQ代码$(function(){ JQ代码...
    chcvn阅读 540评论 0 5
  • 一、页面加载 JQ的页面加载比JS要快,当整个dom树结构生成完毕后就会加载 JQ页面加载不存在覆盖问题,加载的时...
    zengsiyong阅读 985评论 0 17
  • 在执行python setup.py develop你可能会遇到'openssl/opensslv.h' file...
    大诗兄_zl阅读 3,291评论 0 1
  • 文/林小白 01 之前,我和一位大姐同一个办公室。大姐每天都喜欢看些民生新闻。今天跟我说一男子和女朋友分手后,在女...
    Nicole林小白阅读 1,349评论 6 16