html_day6 jq 省市联动 左右选择 表单校验及总结

1.省市联动

Paste_Image.png
  • 遍历each
    $(ele).each(fn);
    $.each($ele,fn);
  • 文档处理:内部插入
Paste_Image.png
<script>
$(function() {
$("#province").change(function() {
$("#city").empty();
var val=this.value;
var citys = new Array(["武汉市", "黄冈市", "襄阳市", "荆州市"], ["长沙市", "林州市", "株洲市", "岳阳市"], ["石家庄市", "邯郸市", "廊坊市", "保定市"], ["郑州市", "洛阳市", "开封市", "保定市"]);
$.each(citys, function(i, n) {
 if(i == val) {
$.each(citys[i], function(j, m) {
var note=document.createTextNode(m);
var ele=document.createElement("option");
$(ele).append(note);
$(ele).appendTo($("#city"));
    });
    }
    });
    });
    });
</script>

2.左右选择

$(function  () {
            $("#selectOneToRight").click(function  () {
                $("#left option:selected").appendTo($("#right"));
                
            })
            $("#selectAllToRight").click(function  () {
                $("#left option").appendTo($("#right"));
                
            })
            $("#left").dblclick(function  () {
                $("#left option:selected").appendTo($("#right"));
                
            })
        
        })
        
--------------------------------------------------
<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>
  • 常见事件


    Paste_Image.png
  • 事件切换
    hover( over , out)简化方法
    A.hover( fn1 , fn2)等效A.mouseover( fn1 ).mouseout( fn2)
    toggle( fn1, fn2 , .... ) click事件增强版,轮回

3.表单校验

  • validation校验
Paste_Image.png
Paste_Image.png

Paste_Image.png
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
        <!--validate.js是建立在jquery之上的,所以得先导入jquery的类库-->
        <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>

4.jq总结

  • 属性操作_attr
<script>
            /**
             * 需求:
             *  1.获取图片的路径
             *  2.设置图片的高度属性
             *  3.给图片设置多个属性(宽度和高度)
             *  4.移出图片的高度属性
             */
            
            /**
             * 方法分析:
             *  1.attr(name):读(获)取属性的值
             *  2.attr(key,value):设置属性值
             *  3.attr(properties):同时设置多个属性
             *  4.removeAttr(name):删除某个属性
             * 
             * 所有方法注意查看运行显示结果,查看其中的某个方法时,请注释其它方法,后面的案例不再说明!
             */
            
            /*
             * 代码实现
             */
            $(function(){
                //1.attr(name):该方法用于获取属性的值(根据属性的名称)
                var srcEle = $("img").attr("src");
                alert(srcEle);//输出结果为该图片的路径:../../img/1.jpg
                
                //2.attr(key,value):该方法用于设置属性和值
                $("img").attr("height","800px");//设置该图片的高度属性,注意观察图片的高度变化
                
                //3.attr(properties):同时设置多个属性值
                //$("img").attr({"width":"1300px","height":"300px"});//注意观察图片发生的变化(宽高都改变)
                
                //4.removeAttr(name):删除某个属性和值
                $("img").removeAttr("width");//清除width属性后,图片变回其自身原有的大小
                
            });
        </script>

  • 属性操作_CSS类
<style type="text/css">
            .divclass {
                color: red;
            }
            
            .div1 {
                background-color: yellow;
            }
            
            #div1 {
                border: 1px solid black;
                width: 400px;
                height: 250px;
                margin: auto;
            }
            
            #father {
                border: 1px solid white;
                width: 450px;
                height: 300px;
                margin: auto;
                text-align: center;
            }
        </style>
        <script type="text/javascript" src="../../js/jquery-1.11.0.min.js"></script>
        <script>
            /**
             * 需求:
             * 1.点击button,使一个div的背景颜色变为 黄色
             * 2.点击button,清空之前设置的背景颜色
             * 3.通过toggleClass(class) 实现点击字体变为紅色,再点击样式还原
             */

            /**
             * 方法分析:
             *  1.addClass(class) 添加一个class属性
             *  2.removeClass([class]) 移除一个class属性
             *  3.toggleClass(class) 如果存在(不存在)就删除(添加)一个类
             */

            /**
             *代码实现 
             */
            $(function() {
                // 1.点击button,使一个div的背景颜色变为黄色
                $("#button1").click(function() {
                    $("#div1").addClass("div1");
                });

                // 2.点击button,清空之前设置的背景颜色
                $("#button2").click(function() {
                    $("#div1").removeClass("div1");
                });

                // 3.通过toggleClass(class) 实现点击字体变为紅色,再点击样式还原
                $("#button3").click(function() {
                    $("#div1").toggleClass("divclass");
                });
            });
        </script>
    </head>

    <body>
        <div id="father">
            <div id="div1">AAAAAA</div><br />
            <input type="button" value="背景颜色变为黄色" id="button1" />
            <input type="button" value="背景颜色清空" id="button2" />
            <input type="button" value="字体颜色开关" id="button3" />
        </div>
    </body>
  • 属性操作_html代码
<script>

            $(function(){
                //1.点击按钮获取div中 html
                $("#btn1").click(function(){
                    var divEle = $("div").html();
                    alert(divEle);//<p>传播</p>
                });
                
                //2.点击按钮设置div中html
                $("#btn2").click(function(){
                    $("div").html("Java学院");//覆盖之前此位置的内容
                });
                
            })
        </script>
  • 属性操作_文本text
$(function(){
                //1.点击按钮获取div中 text
                $("#btn1").click(function(){
                    var divEle = $("div").text();
                    alert(divEle);/
                });
                
                //2.点击按钮设置div中text
                $("#btn2").click(function(){
                    $("div").text("Java");//覆盖之前此位置的内容
                });
                
            })
  • 属性操作_值val
$(function(){
                //1.点击按钮获得文本框、下拉框、单选框选中的value
                $("#btn1").click(function(){
                    alert($("#username").val());
                    alert($("#city").val());
                    alert($("input[type='radio']:checked").val());
                });
                    
                //2.点击按钮设置用户名的默认值为“老王”
                $("#btn2").click(function(){
                    $("#username").val("老王");
                });
            })
------------------
<body>
        用户名 <input type="text" id="username" /> <br/> 
        性别 <input type="radio" name="gender" value="男" />男
            <input type="radio" name="gender" value="女" checked="checked"/> 女<br/> 
        城市
            <select id="city">
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="广州">广州</option>
            </select> <br/>
            <input type="button" value="获取val" id="btn1" />
            <input type="button" value="设置val" id="btn2" />
    </body>
  • 文档处理_插入操作
/**
             * 方法分析:
             *  内部插入
             *      1.append(content):内部结尾处,将B追加到A里面去
             *      2.appendTo(content):内部结尾处,将A追加到B里面去
             *      3.prepend(content):内部开始处,将B追加到A里面去
             *      4.prependTo(content):内部开始处,将B追加到A里面去
             *  外部插入
             *      1.after(content):外部,将B追加到A后面
             *      2.before(content):外部,将A追加到B前面
             *      3.insertAfter(content):外部,将A追加到B后面
             *      4.insertBefore(content)::外部,将A追加到B前面
             */
------------------
$(function() {
                // 追加 option 内容大专
                // 创建元素
                var $newNode = $("<option value='大专'>大专</option>");
                
                //内部插入
                //$("#edu").append($newNode);   // 内部结尾,将B追加到A里面去
                //$("#edu").prepend($newNode);  // 内部开始,将B追加到A里面去

                //外部插入
                //$("option[value='本科']").after($newNode);
                $newNode.insertBefore($("option:contains('硕士')"));
            });
--------------
<body>
        <select id="edu">
            <option value="博士">博士</option>
            <option value="硕士">硕士</option>
            <option value="本科">本科</option>
            <option value="高中">高中</option>
        </select>

    </body>
  • 文档处理_复制操作
*   1.clone():克隆匹配的DOM元素并且选中这些克隆的副本。
 *       2.clone():元素以及其所有的事件处理并且选中这些克隆的副本(简言之,副本具有与真身一样的事件处理能力)
             
$(function(){
                //点击li列表项,将当选点击的li内容追加到ul末尾
                $("ul li").click(function(){
                    //$(this).clone().appendTo("ul"); // 复制当前点击的节点,并将它追加到<ul>元素
                    $(this).clone(true).appendTo("ul");//设置参数true后,复制后的内容也具备单击事件
                })   
              });
  • 文档处理_替换操作
$(function(){
                //将B的内容替换掉A处的内容
                $("p").replaceWith("<strong>你最不喜欢的水果是?</strong>"); 
                // 同样的实现: $("<strong>你最不喜欢的水果是?</strong>").replaceAll("p"); 
            });
  • 文档处理_删除操作
*   1.remove():删除节点后,事件也会删除
             *  2.detach():删除节点后,事件会保留 从1.4新API 
             *  3.empty():清空元素中的所有后代节点。(这个案例是要删除而不是清空,需要注意)
$(function() {
                $("p").click(function() {
                    alert($(this).text());
                });
                // 使用remove方法删除 p元素,连同事件一起删除
                //var $p = $("p").remove();
                // 使用detach删除,事件会保留
                var $p = $("p").detach();

                $("div").append($p);
            }); 
  • 使用对象访问方式遍历
$(function(){
                // 全选/ 全不选
                $("#checkallbox").click(function(){
                    var isChecked = this.checked;
                    //使用对象访问的方式进行遍历,语法:$().each(function(){})
                    $("input[name='hobby']").each(function(){
                        this.checked = isChecked;
                    });
                });
            });
----------------------
<body>
        请选择您的爱好<br/>
        <input type="checkbox" id="checkallbox" /> 全选/全不选 <br/>
        <input type="checkbox" name="hobby" value="足球" /> 足球
        <input type="checkbox" name="hobby" value="篮球" /> 篮球
        <input type="checkbox" name="hobby" value="游泳" /> 游泳
        <input type="checkbox" name="hobby" value="唱歌" /> 唱歌 <br/>
    </body>

-------------------------
$(function(){
                // 全选/ 全不选
                $("#checkallbox").click(function(){
                    var isChecked = this.checked;
                    //使用工具类遍历方式,语法:$.each(array,function(i,j){})  其中array代表被遍历的对象,i代表角标,j代表遍历后的内容。
                    $.each($("input[name='hobby']"), function(i,j) {
                        j.checked = isChecked;
                    });
                });
            });
  • 属性操作_CSS类
*  1.css(name, value) 设置一个CSS样式属性
             *  2.css(properties) 传递key - value对象, 设置多个CSS样式属性
* CSS操作方法汇总:
             * 1.通过attr属性设置 / 获取 style属性
             *  attr('style', 'color:red'); // 添加style属性
             * 2.设置CSS样式属性
             *  css(name, value) 设置一个CSS样式属性
             *  css(properties) 传递key - value对象, 设置多个CSS样式属性        
             * 3.设置class属性
             *  addClass(class) 添加一个class属性
             *  removeClass([class]) 移除一个class属性
             *  toggleClass(class) 如果存在(不存在)就删除(添加) 一个类
    $(function() {
                // 1.点击button,使一个div的背景颜色变为绿色
                //方式一
                /*$("#button1").click(function() {
                    $("#div1").css("background-color","green");
                });*/
                
                //方式二:
                $("#button1").click(function() {
                    $("#div1").attr("style","background-color:green");
                });

                // 2.点击button,使一个div的背景颜色变为绿色,内容字体颜色变成红色
                $("#button2").click(function() {
                    $("#div1").css({"background-color":"green","color":"red"});
                });
            });                  
  • 页面未加载执行失败
<script type="text/javascript">
            document.getElementById("panel").onclick = function() {
                alert("元素已经加载完毕 !");
            }
            /*
                执行错误,为什么?
                因为dom还未加载完毕。
            */
        </script>
    </head>

    <body>
        <div id="panel">click me.</div>
    </body>
------------------------------
<!--解决办法:
        方式一:将JS代码移到需要操作的html代码后面,一般建议放到body的外面
        方式二:将JS代码放到一个页面加载函数中去-->

    <body>
        <div id="panel">click me.</div>
        <script type="text/javascript">
                document.getElementById("panel").onclick = function() {
                    alert("元素已经加载完毕 !");
                }
                /*正确执行*/
        </script>
  • 事件移除
$(function() {
                $('#btn').bind("click", function() {
                    $('#test').append("<p>我的绑定函数1</p>");
                });
                $('#delAll').click(function() {
                    $('#btn').unbind("click");
                });
            })
  • 鼠标滑过
$(function() {
                $(".head").mouseover(function() {
                    $(this).next().show();
                }).mouseout(function() {
                    $(this).next().hide();
                })
            })
  • 合成事件
$(function() {
                $(".head").hover(function() {
                    $(this).next().show();
                }, function() {
                    $(this).next().hide();
                })
            })
---------------------------
$(function() {
                $(".head").toggle(function() {
                    $(this).next().hide();
                }, function() {
                    $(this).next().show();
                })
            })

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容

  • 什么是事件: 我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠...
    张松1366阅读 6,785评论 1 6
  • jQuery.js js类库 a. 浏览器的兼容性处理完善,兼容ie6 b. DOM操作接口简单,容易上手 c....
    3hours阅读 413评论 0 0
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,331评论 0 8
  • DOM DOM内容主要分为四部分: 什么是DOM和节点; 获取节点; 节点操作(3种); 属性操作(3种)。 什么...
    magic_pill阅读 774评论 0 1
  • 折断了三百支笔芯书 书写了一千个太阳和月亮 才换来一次涅槃 我们不是天鹅 但我们也要有凤凰浴火的勇气 我们不是雄鹰...
    逗霸君阅读 191评论 7 15