zoukankan      html  css  js  c++  java
  • javaWeb核心技术第五篇之jQuery

    - 概述
      - jQuery是一个优秀的javascript框架(js类库),兼容css3和各大浏览器,提供dom,events,animate,ajax等简易的操作。并且jQuery有非常丰富的插件,大多数功能都有相应的插件解决方案。jQuery的宗旨是write less, do more. (写的更少,做的更多)
    - jQuery入门
      - jQuery和html整合
        - 下载
          - 下载地址:www.jquery.com
        - 使用script的src属性即可
          "eg:<script src="../js/jquery-1.11.0.min.js"></script>"
      - 语法
        - $("选择器")     或     jQuery("选择器")
          "var  元素对象  = $("选择器");
          $("#id值");     val();"
      - javaScript和jquery区别
        - 注意事项:
          "使用jquery的方式获取的对象称为jquery对象,
          使用js的方式获取的对象称为dom(js)对象,
          两者的方法和属性不能混用,
          使用jquery的方法和属性时,必须保证对象是jquery对象."
        - js对象和jquery对象之间的转换
          - js对象  →  jquery对象
            - $(js对象);
          - jquery对象  →   js对象
            - 方式1:jQuery对象[index]
            - 方式2:jQuery对象.get(index)
    - 事件(event)
      "在js的事件中,事件前加on,在jq的事件中通常没有on,直接写名称即可"
      - 页面加载成功事件
        - 格式1:$(document).ready(function(){});
        - 格式2:$(function(){});
        - 注意:在同一个页面内,jquery的页面加载成功事件可以出现多次,从上到下依次执行,js的页面加载成功事件只能出现一次,即使出现多次,也只有最后一个生效
      - 重点事件
        - click
        - change
        - submit
        - focus
        - blur
      - jquery事件和事件源的绑定
        "要保证页面加载成功后,才能使用jq的事件"
        - jquery对象.事件名称(function(){});
    - jQuery的选择器
      - 基本选择器:★
        -  * 所有
        - # id
        - .class
        - 标签选择器(标签名)
        - 多个选择器用","号隔开   a,b
      - 层次选择器:★
        - a b:选择a的b的后代
        - a>b:选择a的b孩子
        - a+b:选择a的b大弟弟
        - a~b:选择a的所有的b弟弟 
      - 基本过滤:
        - :first 第一个
        - :last  最后一个
        - :even    偶数
        - :odd    奇数
        - :eq(index) 索引=
        - :gt(index) 索引>
        - :lt(index) 索引<
        - :not(选择器)
      - 内容过滤:
        - :has(选择器):包含
      - 可见性过滤:
        - :hidden:不可见 主要针对的是 文本隐藏域和指定display=none
        - :visible:可见
      - 属性选择器★
        - [属性名]:有指定属性的元素
        - [属性名='']:有指定属性和值的元素
      - 表单对象属性★
        - :enabled             可用的
        - :disabled          不可用的
        - :checked     选中的(针对的是单选框和复选框)
        - :selected     选中的(下拉选)
      - 表单:
        - :input:选择所有的表单子标签
          "input:选中所有input标签
          select   textarea   button"
          - input select textarea button
    - jQuery的DOM操作
      - jQuery效果:
        - 基本:★ 高和宽都变化
          - hide([毫秒值]):隐藏
          - show([毫秒值]):显示
          - toggle([毫秒值]):切换
        - 滑入滑出:高变化
          - slideUp([毫秒值]):滑出
          - slideDown([毫秒值]):滑入
          - slideToggle([毫秒值]);切换
        - 淡入淡出:
          - fadeIn([毫秒值]);
          - fadeOut([毫秒值]);
          - fadeToggle();切换
        - 了解:
          - fadeToggle(毫秒值,function(){});
          - 以上效果都可以添加一个回调函数
      - css样式
        - css
          - 设置css样式
            - 格式1:设置单个属性
              "jq对象.css("属性","");"
            - 格式2:设置多个属性
              "jq对象.css({
                  "属性":"",
                  "属性1":"值1"
              });"
          - 获取css样式的值
            "    jq对象.css("属性名称");"
        - 获取元素的宽和高
          - jq对象.width()
          - jq对象.height()
        - 扩展:offset()
          "获取元素在当前页面的位置"
          - top
            "元素距离顶部的距离"
          - left
            "元素距离左边的距离"
      - 属性
        - attr():设置或者获取元素的属性
          - 设置属性(给标签添加属性)
            - 格式1:设置单个属性
              "jq对象.attr("属性名","");"
            - 格式2:设置多个属性
              "jq对象.attr({
                  "属性":"",
                  "属性1":"值1"
              });"
          - 获取属性的值
            "    jq对象.attr("属性名");"
          - 移出属性(删除属性)
            "    jq对象.removeAttr("属性名");"
        - prop():使用方式和attr一样,优先使用attr方法,若attr方法不能用,换prop方法(版本升级后的产物)
        - class操作 了解
          - 元素.addClass("属性值");添加
          - 元素.removeClass():移除指定的样式
          - 元素.toggleClass("属性值"):切换
    
    */
    
    /*
    
    回顾:
        jQuery:js类库(js框架)对js进行封装,本质上就是外部的js文件.
        jQuery和html整合:
            1.下载
            2.通过script标签的src属性引入即可(1.11)
        jQuery语法:
            $("选择器");     或  jQuery("选择器");
        jq对象和js对象转换
            jq ===>  js(dom)
                jq对象[index]
                jq对象.get(index);
            js ===>  jq对象
                $(js对象);
        事件:
            click:
            submit:
            change:
            focus:
            blur:
            页面加载成功:
                $(function(){});
                $(document).ready(function(){});
        选择器:
            基本选择器:
                *
                #id
                .class
                标签名称
                多个选择器之间使用逗号
            层次选择器:
                a b
                a>b
                a+b
                a~b
            基本过滤选择器:
                :first
                :last
                :even
                :odd
                :eq(index)
                :gt(index)
                :lt(index);
                :not(选择器)
            内容过滤选择器:
                has(选择器);
            可见性过滤选择器:
                :hidden        type="hidden"   display = "none"
                :visible
            属性选择器:
                [属性]
                [属性='值']
            表单对象选择器:
                :enabled
                :disabled
                :selected    下拉选
                :checked    单选框个复选框
            表单选择器:
                :input
                    input select textarea button
        DOM:
            效果:
                基本效果:
                    hide()
                    show()
                    toggle()
                滑入滑出:
                    slideUp();
                    slideDown();
                    slideToggle();
                淡入淡出:
                    fadeIn();
                    fadeOut();
                    fadeToggle([毫秒值],回调函数);
            操作css样式:
                设置:
                    设置单个:
                        jq对象.css("属性名称","值");
                    设置多个:
                        jq对象.css({
                            "属性名称":"值",
                            "属性名称":"值"
                        });
                获取:
                    jq对象.css("属性名称");
                获取宽和高:
                    width();
                    height();
                获取位置:
                    offset();
                        top:
                        left:
            操作属性:
                attr:
                    设置属性:
                        设置单个:
                            jq对象.attr("属性名称","值");
                        设置多个:
                            jq对象.attr({
                                "属性名称":"值",
                                "属性名称":"值"
                            });
                    删除:
                        removeAttr("属性名称");
                prop:如果attr不好使使用prop代替
                操作class:
                    addClass("class属性的值");
                    removeClass();
                    classToggle("class属性的值");
    /////////////////////////////////////////////
    案例1-省市联动
        需求分析:
            当省份改变的时候,根据选中的省份查询其所对应的市数组,遍历市数组,将每一个市拼成option插入到市的下拉选中.
        技术分析:
            事件
            jq遍历
            jq对DOM操作
        /////////////////////////
        步骤分析:
            1.确定事件(改变事件)
                给省份的下拉选添加改变事件
            2.编写改变事件函数
                //a.获取省份的value的值
                //b.获取所对应的市数组
                //c.获取市的下拉选对象
                //d.遍历市数组,将每一个市拼成option插入到市的下拉选中
    
    案例2-左右选择
        需求分析:
            当点击不同的按钮时,根据按钮的需求将左边或右边的option插入到对面的下拉选中.
        技术分析:
            事件
            文档处理
        ////////////////////
        步骤分析:
            1.确定事件(单击事件)
                给按钮派发单击事件
            2.编写函数
                //a.将左边选中的第一个插入到右边
        
    案例3-表单校验
        需求分析:
            通过使用validate插件来完成表单校验.
        技术分析:
            validate插件
    //////////////////
            
        
        
    扩展案例-模拟分组
    
    //////////////////
    day31jQuery
    
    - jQuery遍历
      - 方式1:jQuery的对象方法
        - 格式:
          " jq对象.each(function([index],[dom对象]){  
                  对遍历到每个元素的操作 
            });"
      - 方式2:全局函数
        - 格式:
          "$.each(要遍历的jquery对象,function([index],[dom对象]){
          });
          $.each(数组,function(){
          });"
          
    案例:
    //方式1:jq对象的方法
                    $("#b1").click(function(){
                        //获取当前页面的文本隐藏域,并打印他们的value值
                        //[e1,e2,e3,e4]  存放的是dom(js)对象
                        $("input:hidden").each(function(index,ele){
    //                        alert(index+"   "+ele.value+"  "+$(ele).val());
                            alert(this.value);
                        });
                    });
                    //方式2:全局遍历
                    $("#b2").click(function(){
                        //获取要遍历的对象
                        var $hideObj = $("input:hidden");
                        $.each($hideObj, function(index,ele) {
                            alert(index+"   "+ele.value+"  "+$(ele).val()+"  "+this.value);
                        });
                    });
                    //js对象
                    var arr = new Array(1,2,3,"tom");
                    $("#b3").click(function(){
    //                    $.each(arr, function(index,ele) {
    //                        alert(index+"   "+ele+"   "+this);
    //                    });
                        $(arr).each(function(index,ele){
                            alert(index+"   "+ele+"   "+this);
                        });
                    });
                });
          
    - jQueryDOM操作
      - HTML代码/文本/值 ★
        - val() : 对value属性的操作
          - jq对象.val();       获取value属性的值
          - jq对象.val("值");       设置value属性的值
        - html() : 对标签体的操作
          - jq对象.html();      获取标签体的内容
          - jq对象.html("值");     设置标签体的内容
        - text() : 对标签体的操作
          - jq对象.text();       获取标签体的内容
          - jq对象.text("值");     设置标签体的内容
        - html和text区别
          "设置内容: html可以将内容解析,text只是作为普通文本
          获取内容:html获取所有源码内容,text只是获取文本内容"
      - 文档处理
        - 内部插入:
          - append        a.append(c)     将c插入到a的内部的后面
          - prepend        a.prepend(c)    将c插入到a的内部的前面
          - appendTo    a.appendTo(c) 将a插入到c的内部的后面
          - prependTo    a.prependTo(c)将a插入到c的内部的前面
          
    内插入案例:
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    
        <head>
            <title>01_内部插入节点.html</title>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function() {
                    //0.获取要操作的对象
                    var $city = $("#city");
                    var $fk = $("#fk");
                    //1.在city内部的后面追加 反恐
                    //向指定标签内部的前面进行插入
    //                $city.append($fk);
    //                $fk.appendTo($city);
                    //2.在city内部的前面插入 反恐
                    //向指定标签内部的后面进行插入
    //                $city.prepend($fk);
                    $fk.prependTo($city);
                });
            </script>
        </head>
    
        <body>
            <ul id="city">
                <li id="bj" name="beijing">北京</li>
                <li id="tj" name="tianjin">天津</li>
                <li id="cq" name="chongqing">重庆</li>
                
            </ul>
    
            <ul id="love">
                <li id="fk" name="fankong">反恐</li>
                <li id="xj" name="xingji">星际</li>
            </ul>
    
    
        </body>
        <script type="text/javascript">
        </script>
    
    </html>
          
     $(document).ready(function() {
    
                    //1 获取 username的value属性的值
    //                alert($("[name='username']").val());
                    //2 设置 username的默认值为"许多多"
                    $("[name='username']").val("许多多");
                    //3通过html获取div标签体的内容
    //                alert($("div").html());
                    //4通过html设置div标签体的内容
    //                $("div").html("已满18,请戴眼镜...");
                    //5通过text获取div标签体的内容
    //                alert($("div").text());
                    //6通过text设置div标签体的内容
    //                $("div").text("已满18,请戴眼镜!!!!");
                    //7 两者设置值的区别
                    //html在设置内容时,可以解析html标签
                    $("div").html("<font color='red'>已满18,请戴眼镜...</font>");
                    //text在设置内容时,原样设置
    //                $("div").text("<font color='red'>已满18,请戴眼镜...</font>");
                    //8 两者获取值的区别
                    //html在获取时,原样获取(不会解析任何标签)
    //                alert($("div").html());
                    //text在获取时,会解析标签,仅仅获取文本内容
    //                alert($("div").text());
                    
                    
                }); $(document).ready(function() {
    
                    //1 获取 username的value属性的值
    //                alert($("[name='username']").val());
                    //2 设置 username的默认值为"许多多"
                    $("[name='username']").val("许多多");
                    //3通过html获取div标签体的内容
    //                alert($("div").html());
                    //4通过html设置div标签体的内容
    //                $("div").html("已满18,请戴眼镜...");
                    //5通过text获取div标签体的内容
    //                alert($("div").text());
                    //6通过text设置div标签体的内容
    //                $("div").text("已满18,请戴眼镜!!!!");
                    //7 两者设置值的区别
                    //html在设置内容时,可以解析html标签
                    $("div").html("<font color='red'>已满18,请戴眼镜...</font>");
                    //text在设置内容时,原样设置
    //                $("div").text("<font color='red'>已满18,请戴眼镜...</font>");
                    //8 两者获取值的区别
                    //html在获取时,原样获取(不会解析任何标签)
    //                alert($("div").html());
                    //text在获取时,会解析标签,仅仅获取文本内容
    //                alert($("div").text());
                    
                    
                });
          
        - 外部插入:
          - after                a.after(c)                在a的后面插入c
          - before        a.before(c)          在a的前面插入c
          - insertAfter    a.insertAfter(c)    将a插入到c的后面
          - insertBefore     a.insertBefore(c) 将a插入到c的前面
          
    案例:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    
        <head>
            <title>02_外部插入节点.html</title>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function() {
                    //0.获取要操作的对象
                    var $city = $("#city");
                    var $p2 = $("#p2");
                    //1.在 p2 的后面插入 city
                    //在指定的标签的后面进行插入
    //                $p2.after($city);
    //                $city.insertAfter($p2);
                    //2.在 p2 的前面插入 city
                    //在指定的标签的前面进行插入
    //                $p2.before($city);
                    $city.insertBefore($p2);
                });
            </script>
        </head>
    
        <body>
            <ul id="city">
                <li id="bj" name="beijing">北京</li>
                <li id="tj" name="tianjin">天津</li>
                <li id="cq" name="chongqing">重庆</li>
            </ul>
    
            <p id="p3">I would like to say: p3</p>
    
            <p id="p2">I would like to say: p2</p>
    
            <p id="p1">I would like to say: p1</p>
    
        </body>
        <script type="text/javascript">
        </script>
    
    </html>
          
        - 删除:
          - empty():清空元素 (清空所有的子标签)
          - remove():移除 (自杀)
          
    删除案例:
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    
        <head>
            <title>03_删除节点.html</title>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript">
                $(document).ready(function() {
                    //0.获取要 操作的对象
                    var $ul = $("#city");
                    //1.清空ul
    //                $ul.empty();
                    //2.移除ul
                    $ul.remove();
                });
            </script>
        </head>
    
        <body>
            <ul id="city">
                <li id="bj" name="beijing">北京
                    <p>海淀区</p>
                </li>
                <li id="tj" name="tianjin">天津
                    <p>河西区</p>
                </li>
                <li id="cq" name="chongqing">重庆</li>
            </ul>
            <p class="hello">Hello</p> how are
            <p>you?</p>
        </body>
        <script type="text/javascript">
        </script>
    
    </html>
          
    - jQuery的事件总结
      - 事件切换(知道)
        - hover:相当于给一个元素添加了mouseover和mouseout两个事件
          "jq元素对象.hover(function(){
              //第一个函数相当于mouseover
          },function(){
              //第二个函数相当于mouseout
          });"
        - toggle:相当于给一个元素添加了单击事件,轮流执行多个函数(兼容性有问题jquery1.8版本之前支持)
          "jq元素.toggle(function(){},function(){}...);"
          
    案例:
    
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
            <!--<script type="text/javascript" src="../js/jquery-1.8.3.min.js" ></script>-->
            <script type="text/javascript">
                $(function(){
                    $("#divId").hover(function(){
                        //相当于mouseover
                        $(this).html("mouseover事件被触发了");
                    },function(){
                        //相当于mouseout
                        $(this).html("mouseout事件被触发了....");
                    });
                    
                    $("#bId").toggle(function(){
                        alert(1);
                    },function(){
                        alert(2);
                    },function(){
                        alert(3);
                    });
                    
                });
            </script>
        </head>
    
        <body>
            <input type="button" id="bId" value="点击查看" /><br>
            <div id="divId" style="border:1px solid red;height:100px;100px">事件切换</div>
        </body>
    
    </html>
          
      - 常见事件
        - submit 表单提交事件★
        - focus 获得焦点事件  ★
        - blur  失去焦点  ★
        - change  改变 ★
        - click  单击 ★
        - dblclick 双击
        - keydown  键盘按下
        - keyup  键盘弹起
        - keypress 键盘按下并弹起
        - mousedown   鼠标按下
        - mouseup  鼠标弹起
        - mousemove  鼠标移入
        - mouseout   鼠标移出
        - mouseover  鼠标悬停  
      - 事件和事件源的绑定  ★
        - jq对象.事件名称(function(){});
    - validate插件
      "插件:指的就是别人已经写好的功能代码,直接引入使用即可.
          "
      - 作用:对表单进行校验
      - 下载:
        "下载路径:http://jqueryvalidation.org/files/jquery-validation-1.15.0.zip"
      - 使用方式:
        - 1.导入jquery.js
          "validate是基于jquery写的,所以要先导入jquery的js文件"
        - 2.再导入validate.js
          "想要使用别人的插件就必须的导入人家已经写好的js文件(插件)"
        - 3.在页面加载成功后,要确定对页面上的哪个表单进行校验
          "    $(function(){
                  表单对象.validate();
              });"
        - 4.validate使用格式:
          "    表单对象.validate({
                  rules:{},    //校验规则
                  messages:{}    //提示信息
              });"
        - 5.常见的校验规则
          - 校验器名称             描述            值
          - required:           必须填写          true|false
          - number:        只能输入数字            true|false
          - min:               最小值              数字
          - max:        最大值            数字
          - range:        取值范围        [min,max]
          - minlength:    最小长度        数字
          - maxlength:    最大长度        数字
          - rangelength:    长度范围        [minlength,maxlength]
          - equalTo:            和谁相等      通过jQuery选择器选中指定元素对象
          - email:        校验邮箱        "email"
        - 6.rules校验器语法:
          - 方式1:单一校验
            "name属性的值:"校验器""
          - 方式2:多个校验
            "    name属性的值:{
                    校验器1:值1,
                    校验器2:值2
                }"
        - 7.messages自定义提示信息语法:
          - 方式1:
            "name属性的值:"提示信息""
          - 方式2:
            "    name属性的值:{
                    校验器1:"提示信息1",
                    校验器2:"提示信息2"
                }"
                
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <!--1.导入jq的js文件-->
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
            <!--2.导入validate的js文件-->
            <script type="text/javascript" src="../js/jquery.validate.js" ></script>
            <script type="text/javascript" src="../js/messages_zh.js" ></script>
            <script>
                /*3.在页面加载成功之后,锁定要校验的表单对象*/
                $(function(){
                    //锁定要校验的表单对象,调用validate方法
                    $("#formId").validate({
                        rules:{
                            //单一校验规则
    //                        username:"required",
    //                        //多个校验规则
    //                        password:{
    //                            required:true,
    //                            number:true
    //                        },
    //                        repassword:{
    //                            required:true,
    //                            number:true,
    //                            equalTo:"[name='password']"
    //                        },
    //                        zuixiaozhi:{
    //                            required:true,
    //                            min:180
    //                        },
    //                        shuzhiqujian:{
    //                            required:true,
    //                            range:[18,26]
    //                        }
                            card:{
                                required:true,
                                cardLength:true
                            }
                        },    //校验规则
                        messages:{
    //                        username:"<font color='red'>用户名不可为空</font>",
    //                        password:{
    //                            required:"密码不可为空",
    //                            number:"密码只能为数字"
    //                        },
    //                        zuixiaozhi:{
    //                            min:"请输入不小于{0}的值啊...."
    //                        },
    //                        shuzhiqujian:{
    //                            range:"请输入年龄在{0}到{1}之间的年龄"
    //                        }
                            card:{
                                cardLength:"请输入16或18位的数字"
                            }
                        }    //提示信息
                    });
                });
                
                //编写自定义校验器
                $.validator.addMethod("cardLength",function(val,ele,par){
                    if(par){
                        if(val.length==16||val.length==18){
                            return true;
                        }
                        return false;
                    }else{
                        return true;
                    }
                    
                },"输入的不合法");
                
            </script>
        </head>
    
        <body>
            <form id="formId" action="">
                必填:<input type="text" name="username" /> <br/> 必填数字:
                <input type="text" name="password" /> <br /> 必填重复:
                <input type="text" name="repassword" /> <br /> 最小值:
                <input type="text" name="zuixiaozhi" /> <br /> 区间:
                <input type="text" name="shuzhiqujian" /> <br />
                身份证长度:<input type="text" name="card" /> <br />
                <input type="submit" value="提交" />
            </form>
        </body>
    </html>
                
      - 自定义校验器
        - 格式:
          - $.validator.addMethod(name,function(value,element,params){},"message");
          - 参数说明:
            - name:校验器的名称,唯一
            - function:校验规则
              - value:用户输入的值
              - element:要校验的dom对象
              - params:校验器的值
            - message:当不满足校验规则时的提示信息
    - 扩展:
      - 筛选-查找;
        - children(["选择器"]):    所有孩子
        - parent():    父母
        - find("选择器"):        查找后代
        - next():        下个兄弟 +
        - nextAll():    所有的弟弟 ~
        - prev():        小哥哥
        - prevAll():    哥哥们
        - siblings():    兄弟们
        
      - 筛选-过滤
        - is("选择器"):判断是否满足   返回Boolean
    
    查找案例:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>05-可见性过滤选择器.html</title>
            <!--   引入jQuery -->
            <script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript" src="../js/assist.js" ></script>
            <link rel="stylesheet" type="text/css" href="../css/style.css" />
            <script type="text/javascript">
                $(document).ready(function() {
                    //<input type="button" value=" 选择 id=two 所有子元素" id="b1" />
                    $("#b1").click(function(){
                        $("#two").children().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2" />
                    $("#b2").click(function(){
    //                    $("#two").children("[title=other]").css("background-color","#ff0");
                        $("#two").find("[title=other]").css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 下一个兄弟" id="b3" />
                    $("#b3").click(function(){
                        $("#two").next().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4" />
                    $("#b4").click(function(){
                        $("#two").nextAll().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 上一个兄弟" id="b5" />
                    $("#b5").click(function(){
                        $("#two").prev().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6" />
                    $("#b6").click(function(){
                        $("#two").prevAll().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 所有兄弟" id="b7" />
                    $("#b7").click(function(){
                        $("#two").siblings().css("background-color","#ff0");
                    });
                    //<input type="button" value=" 选择 id=two 父元素" id="b8" />
                    $("#b8").click(function(){
                        $("#two").parent().css("background-color","#ff0");
                    });
                });
            </script>
        </head>
    
        <body>
            <h3>可见性过滤选择器.</h3>
            <button id="reset">手动重置页面元素</button>
            <input type="checkbox" id="isreset" checked="checked" /><label for="isreset">点击下列按钮时先自动重置页面</label>
            <br/><br/>
            <input type="button" value=" 选择 id=two 所有子元素" id="b1" />
            <input type="button" value=" 选择 id=two 子元素title=other 元素 " id="b2" />
            <input type="button" value=" 选择 id=two 下一个兄弟" id="b3" />
            <input type="button" value=" 选择 id=two 后面的所有兄弟" id="b4" />
            <input type="button" value=" 选择 id=two 上一个兄弟" id="b5" />
            <input type="button" value=" 选择 id=two 前面的所有兄弟" id="b6" />
            <input type="button" value=" 选择 id=two 所有兄弟" id="b7" />
            <input type="button" value=" 选择 id=two 父元素" id="b8" />
            <br /><br />
    
            <!--文本隐藏域-->
            <input type="hidden" value="hidden_1">
            <input type="hidden" value="hidden_2">
            <input type="hidden" value="hidden_3">
            <input type="hidden" value="hidden_4">
    
            <div class="one" id="one">
                id为one,class为one的div
                <div class="mini">class为mini</div>
            </div>
    
            <div class="one" id="two" title="test">
                id为two,class为one,title为test的div.
                <div class="mini" title="other">class为mini,title为other</div>
                <div class="mini" title="test">class为mini,title为test</div>
            </div>
    
            <div class="one">
                <div class="mini">class为mini</div>
                <div class="mini">class为mini</div>
                <div class="mini">class为mini</div>
                <div class="mini" title="tesst">class为mini,title为tesst</div>
            </div>
    
            <div style="display:none;" class="none">style的display为"none"的div</div>
    
            <div class="hide">class为"hide"的div</div>
    
            <span id="mover">正在执行动画的span元素.</span>
        </body>
    
    </html>
    
    过滤案例:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>05-可见性过滤选择器.html</title>
            <!--   引入jQuery -->
            <script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="../js/assist.js" type="text/javascript"></script>
            <link rel="stylesheet" type="text/css" href="../css/style.css" />
            <script type="text/javascript">
                $(document).ready(function() {
                    $("#b6").click(function(){
                        //判断样式为hide的div 下一个兄弟是否是span
                        var flag = $("div:hidden").next().is("span");
                        alert(flag);
                    });
                });
            </script>
        </head>
    
        <body>
            <h3>可见性过滤选择器.</h3>
            <button id="reset">手动重置页面元素</button>
            <input type="checkbox" id="isreset" checked="checked" /><label for="isreset">点击下列按钮时先自动重置页面</label>
            <br/><br/>
            <input type="button" value=" 判断样式为hide的div 下一个兄弟是否是span" id="b6" />
            <br /><br />
            <!--文本隐藏域-->
            <input type="hidden" value="hidden_1">
            <input type="hidden" value="hidden_2">
            <input type="hidden" value="hidden_3">
            <input type="hidden" value="hidden_4">
    
            <div class="one" id="one">
                id为one,class为one的div
                <div class="mini">class为mini</div>
            </div>
    
            <div class="one" id="two" title="test">
                id为two,class为one,title为test的div.
                <div class="mini" title="other">class为mini,title为other</div>
                <div class="mini" title="test">class为mini,title为test</div>
            </div>
    
            <div class="one">
                <div class="mini">class为mini</div>
                <div class="mini">class为mini</div>
                <div class="mini">class为mini</div>
                <div class="mini" title="tesst">class为mini,title为tesst</div>
            </div>
    
            <div style="display:none;" class="none">style的display为"none"的div</div>
    
            <div class="hide">class为"hide"的div</div>
    
            <span id="mover">正在执行动画的span元素.</span>
        </body>
    
    </html>
    
    用户分组案例:
    
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Insert title here</title>
            <script src="../js/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
            </script>
    
            <style type="text/css">
                div * {
                    display: block;
                     200px;
                }
                div span {
                    background-color: #0f0;
                }
            </style>
            <script>
                $(function(){
                    //给span派发单击事件
                    $("span").click(function(){
                        //将span后面的a标签显示或隐藏
                        $(this).nextAll().toggle();
                        $(this).parent().siblings().find("a").hide();
                    });
                });
            </script>
        </head>
    
        <body>
    
            <div>
                <span>三国好友</span>
                <a>曹操</a>
                <a>刘备</a>
                <a>周瑜</a>
            </div>
            <div>
                <span>笑傲好友</span>
                <a>东方不败</a>
                <a>向问天</a>
                <a>任我行</a>
            </div>
            <div>
                <span>水浒好友</span>
                <a>行者武松</a>
                <a>豹子头</a>
                <a>急先锋</a>
            </div>
    
        </body>
    
    </html>
        
    省市联动案例:
    
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script>
                // 定义二维数组:
                var arr = new Array(4);
                arr[0] = new Array("石家庄", "邯郸", "保定", "秦皇岛");
                arr[1] = new Array("郑州市", "洛阳市", "安阳市", "南阳市");
                arr[2] = new Array("沈阳市", "锦州市", "大连市", "铁岭市");
                arr[3] = new Array("长春市", "吉林市", "四平市", "通化市");
            </script>
            <script src="../js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript">
                $(function() {
                    /*    步骤分析:
            1.确定事件(改变事件)
                给省份的下拉选添加改变事件
            2.编写改变事件函数
                //a.获取省份的value的值
                //b.获取所对应的市数组
                //c.获取市的下拉选对象
                //d.遍历市数组,将每一个市拼成option插入到市的下拉选中*/
                    $("[name=pro]").change(function(){
                        //a.获取省份的value的值
    //                    alert(this.value);
                        //b.获取所对应的市数组
                        var cityArr = arr[this.value];
    //                    alert(cityArr);
                        //c.获取市的下拉选对象
                        var $cityObj = $("#city");
                        //初始化
                        $cityObj.html("<option>=请选择=</option>");
                        //d.遍历市数组,将每一个市拼成option插入到市的下拉选中
                        $.each(cityArr, function() {
    //                        $cityObj.append("<option>"+this+"</option>");
                            $("<option>"+this+"</option>").appendTo($cityObj);
                        });
                    });
                });
            </script>
        </head>
    
        <body>
            <form action="#" method="get">
                <input type="hidden" name="id" value="007" /> 姓名:
                <input name="username" value="xuduoduo" /><br> 密码:
                <input type="password" name="password" value="123" disabled="disabled"><br> 性别:
                <input type="radio" name="sex" value="1" checked="checked"><input type="radio" name="sex" value="0"><br> 爱好:
                <input type="checkbox" name="hobby" value="eat"><input type="checkbox" name="hobby" value="drink" checked="checked"><input type="checkbox" name="hobby" value="sleep" checked="checked"><br> 头像:
                <input type="file" name="photo"><br> 籍贯:
                <select name="pro">
                    <option>--请选择--</option>
                    <option value="0">河北</option>
                    <option value="1">河南</option>
                    <option value="2">辽宁</option>
                    <option value="3">吉林</option>
                </select><select id="city">
                    <option>-请选择-</option>
                </select><br> 自我介绍:
                <textarea name="intr" cols="40" rows="4">good!</textarea>
                <br>
                <input type="submit" value="保存" />
                <input type="reset" />
                <input type="button" value="普通按钮" />
            </form>
        </body>
    
    </html>
    <!--
        
    -->
    
    左右选中案例:
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    
        <head>
            <title>左右选中.html</title>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <style>
                input[type='button'] {
                     50px;
                }
            </style>
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js"></script>
            <script type="text/javascript">
                $(function(){
                    /*    步骤分析:
                    1.确定事件(单击事件)
                        给按钮派发单击事件
                    2.编写函数
                        //a.将左边选中的第一个插入到右边*/
                    $("#toRight1").click(function(){
                        //a.将左边选中的第一个插入到右边
                        $("#left option:selected:first").appendTo($("#right"));
                    });
                    
                    $("#toRight2").click(function(){
                        //a.将左边选中的插入到右边
                        $("#left option:selected").appendTo($("#right"));
                    });
                    
                    $("#toRight3").click(function(){
                        //a.将左边选中的插入到右边
                        $("#left option").appendTo($("#right"));
                    });
                });
            </script>
        </head>
    
        <body>
            <table>
                <tr>
                    <td>
                        <select id="left" multiple="true" style="100px" size="10">
                            <option>環</option>
                            <option>芈</option>
                            <option>琅</option>
                            <option>琊</option>
                            <option>爨</option>
                            <option>甄</option>
                            <option>槑</option>
                            <option>夔</option>
                        </select>
                    </td>
                    <td>
                        <input type="button" value=">" id="toRight1"><br>
                        <input type="button" value=">>" id="toRight2"><br>
                        <input type="button" value=">>>" id="toRight3"><br><br>
                        <input type="button" value="<" id="toLeft1"><br>
                        <input type="button" value="<<" id="toLeft2"><br>
                        <input type="button" value="<<<" id="toLeft3">
                    </td>
                    <td>
                        <select id="right" multiple="multiple" style="100px" size="10">
    
                        </select>
                    </td>
                </tr>
            </table>
        </body>
    
    </html>
        
    
    表单效验案例:
    
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="../js/jquery-1.11.0.min.js" ></script>
            <script type="text/javascript" src="../js/jquery.validate.js" ></script>
            <script type="text/javascript" src="../js/messages_zh.js" ></script>
            <script>
                $(function(){
                    $("#formid").validate({
                        rules:{
                            username:{
                                required:true
                            },
                            email:{
                                required:true,
                                email:"email"
                            },
                            sex:{
                                required:true
                            }
                        },
                        messages:{
                            username:{
                                required:"用户名不可为空"
                            }
                        }
                    });
                });
            </script>
        </head>
    
        <body>
            <form action="#" method="get" id="formid">
                <table width="60%" height="60%" align="center" bgcolor="#ffffff">
                    <tr>
                        <td colspan="3">会员注册USER REGISTER</td>
                    </tr>
                    <tr>
                        <td width="20%">用户名:</td>
                        <td width="80%"><input type="text" name="username" id="username"></td>
                    </tr>
                    <tr>
                        <td>密码:</td>
                        <td><input type="password" name="password" id="password"></td>
                    </tr>
                    <tr>
                        <td>确认密码:</td>
                        <td><input type="password" name="repassword" id="repassword"></td>
                    </tr>
                    <tr>
                        <td>Email:</td>
                        <td><input type="text" name="email" id="email"></td>
                    </tr>
                    <tr>
                        <td>姓名:</td>
                        <td><input type="text" name="name"></td>
                    </tr>
                    <tr>
                        <td>性别:</td>
                        <td>
                            <input type="radio" name="sex" value=""><input type="radio" name="sex" value="" /><label for="sex" class="error"></label>
                        </td>
                    </tr>
                    <tr>
                        <td>出生日期</td>
                        <td>
                            <input type="date" name="birthday">
                        </td>
                    </tr>
                    <tr>
                        <td>验证码</td>
                        <td>
                            <input type="text" name="checkcode">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <input type="submit" value="注册" />
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>
  • 相关阅读:
    UCSC genome browser 个人track 安装
    C++遍历二维数组的四种方法
    生物结构变异分析软件meerkat 0.189使用笔记(一)
    R语言从小木虫网页批量提取考研调剂信息
    使用R语言将微信记录制作成词云(简洁)--情人节奥义
    判断数据是否服从某一分布(二)——简单易用fitdistrplus包
    判断数据是否服从某一分布(一)
    如何正确地写出单例模式
    使用 JavaScript 将网站后台的数据变化实时更新到前端-【知乎总结】
    C#实时读取数据----局部页面刷新【转】
  • 原文地址:https://www.cnblogs.com/haizai/p/11368036.html
Copyright © 2011-2022 走看看