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;width: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;
                width: 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‘] {
                width: 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="width: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="width: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>

原文地址:https://www.cnblogs.com/haizai/p/11368036.html

时间: 2024-10-04 08:50:19

javaWeb核心技术第五篇之jQuery的相关文章

javaWeb核心技术第六篇之BootStrap

概述: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 作用: 开发响应式的页面 响应式:就是一个网站能够兼容多个终端 节约开发成本,提高开发效率 入门: 下载BootStrap www.bootcss.com 官网地址 模版 1.导入BootStrap的css 2.导入jquery的js(1.8+) 3.导入BootStrap的js 4.设置视口(支持移动设备) <meta name="viewport"

javaWeb核心技术第十三篇之Ajax

Js--ajax--原理解释 概述:异步刷新网页,不会刷新整个页面. Get原理: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://w

javaweb回顾第五篇浅谈会话

1:什么是会话 通俗来说就是客户和服务器的一次私密谈话,客户发送请求以后服务器能够识别请求是来自同一个客户,他们是1对1的关系. 了解会话以后我们就要去考虑如何去实现这些问题下面一一进行解析 2:会话的跟踪 2.1:用cookies进行会话跟踪 竟然服务器能别识别不同的用户,但是他是如何识别的呢,这里就说到了SessionId,它是Session的唯一识别,保存在cookies中存放于本地硬盘里面,每次客户请求的时候会把SessionId一起传给服务器,那么服务器就能根据SessionId来识别

javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response

- Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件" - web资源的分类: - 静态的web资源: " 内容是一成不变的" - 动态的web资源: " 内容有可能在不同的时间或者不同的人访问的时候会发生改变的" - web技术分类 - 静态的web技术 " 例如: html css js .....&qu

javaWeb核心技术第八篇之Cookie和Session

会话技术: 会话是什么? 浏览器和服务器交互,浏览器打开网页访问服务器,会话开始,正常交互. 浏览器关闭,会话结束. 会话能干什么? 会话可以共享数据. Cookie和session将数据保存在不同的位置 进行数据共享 Cookie入门案例 1.创建一个cookie对象 a. Cookie cookie = new Cookie(String name,String value); 2.响应给浏览器 a.Response.addCookie(cookie) 3.再次请求时需要获得cookie a

javaWeb核心技术第十篇之Filter

Web中有三大组件(需要配置web.xml) servlet:服务器端的小程序. Filter(过滤器):运行在服务器,对请求的资源进行过滤,对响应进行包装. 经典案例: 自动登录,网站全局编码,非法文字过滤... Filter编写流程: 1.创建一个类,实现一个javax.servlet.Filter接口. 2.配置web.xml 配置解释如下: <!-- <filter>通知tomcat需要加载过滤器 <filter-name>给filter命名,名称任意,web.xml

J2EE学习篇之--JQuery技术详解

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏

[转载]JavaEE学习篇之--JQuery技术详解

原文链接:http://blog.csdn.net/jiangwei0910410003/article/details/32102187 1.简介2.工具3.jQuery对象 1.DOM对象转化成jQuery对象 2.jQuery对象转化成DOM对象4.jQuery选择器 1.基本选择器 2.层次选择器 3.过滤选择器 4.基础过滤选择器 5.内容过滤选择器5.可见度过滤选择器 1.属性过滤选择器 2.子元素过滤选择器 3.表单对象属性过滤选择器 4.表单选择器6.jQuery中的DOM操作

秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题 在<秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量>中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段.事件.互斥量.信号量进行了总结.有网友问到互斥量能处理“遗弃”问题,事件和信号量是否也能处理“遗弃”问题.因此本文将对事件和信号量作个试验,看看事件和信号量能否处理“遗弃”问题. 一.