zoukankan      html  css  js  c++  java
  • day04-jQuery

    jQ宗旨:write less do more

    jq是js的框架,底层封装了js代码。

    jq引入:

    <script type="text/javascript" src="../js/jquery-3.3.1.min.js" ></script>

     jQ选择器:推荐第一种:

    <script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
        <body>
            <script>
                function run(){
                    //alert($("#xi").val());
                    alert(jQuery("#xi").val());
                }
            </script>
            <input type="text" value="西游记" id="xi"/><br />
            <input type="button" value="获取id为xi的值" onclick="run()" />
        </body>

    jQ对象和js对象的互转:

    JS对象转jqvar  jq =  $(js对象);

    JQ对象转js:  var js = jq[0];或者jq.get(0);   因为jQ本质上是一个js数组

    jQ页面加载完成时执行的代码:

    <script>
        $(document).ready(function(){
            //页面加载完成时需要执行的代码
        })
        $(function(){
            //页面加载完成时需要执行的代码
         //推荐这一种
        })
    </script>

    jQ基本选择器:

    ID选择器:$("#id");

    类选择器:$(".类名");

    元素选择器:$("元素名");

    jQ数组遍历的两种方式:

     1.$(数组).each(function(index){       

    alert(this+index);

    })

    2.  $.each($(arr),function(){});

    案例一:重写弹出广告

    知识点:jQ动画效果:

    jQuery的隐藏和显示相对JS更为动感圆滑。

     

        <style>
                #d1{
                    background-color:lightskyblue;
                    width:300px;
                    height:300px;
                }
            </style>
            <script>
                //展示
                function run1(){
                    //1.选中要显示的元素对象
                    var v1 =$("#d1");
                    //滑动效果
                    //v1.show(2000)
                    v1.slideDown(2000);
    //                v1.fadeIn(2000,function(){
    //                    alert("展示成功!!")
    //                });    
                }
                //隐藏
                function run2(){
                    //1.选中要隐藏的元素对象
                    var v2 = $("#d1");
                    v2.hide(3000);
                    //v2.slideUp(3000);
    //                v2.fadeOut(3000,function(){
    //                    alert("隐藏成功!!")
    //                });
                }
                //切换显示/隐藏
                function run3(){
                    //1.选中要隐藏的元素对象
                    var v2 = $("#d1");
                    //v2.toggle(3000);
                    //v2.slideToggle(3000);
                    v2.fadeToggle(3000,function(){
                        alert("切换成功!!")
                    })
                }
            </script>
            <div id="d1"></div>
                <input  type="button" value="显示" onclick="run1()"/>
                <input  type="button" value="隐藏" onclick="run2()"/>
                <input  type="button" value="切换显示/隐藏" onclick="run3()"/>
        </body>

     案例实现显示,隐藏广告:

    <body>
            <img  src="../img/3.jpg" width="100%" style="display: none;"/>
    
            <script>
                //页面加载完成时执行
                $(function(){
                    //两秒后弹出广告
                    setTimeout("show()",2000);
                })
                function show(){
                    // 选中改图片
                    var ad =$("img");
                    //展示(滑动效果);
                    ad.slideDown(2000,function(){
                        //两秒后再隐藏
                        setTimeout("hide()",2000);
                    });
                }
                function hide(){
                    var ad = $("img");
                    ad.slideUp(2000);
                }
            </script>
        </body>

    一.1层级选择器:

     A B    获得A元素内部的所有的B元素。 (子子孙孙)

     A>B   获得A元素下面的所有B子元素。  儿子

     A+B   获得A元素同级下一个B元素    下面的第一个兄弟

     A~B   获得A元素之后的所有B元素 所有的弟弟

     

    <body>
            <script>
                $(function(){
                    //1、获取id为main的span标签 内 所有的div标签
                    var arr1= $("#main div"); // jq对象
                     $(arr1).each(function(index){
                         alert($(this).text()+".."+index);
                     })
                    //2、获取id为main的span标签 内 子元素div标签
                    var arr2 =$("#main>div");
                    $(arr2).each(function(index){
                        alert($(this).text()+".."+index);
                    })
                //    3、获取id为main的span标签 后 第一个div兄弟标签
                    var arr3 = $("#main+div");
                    $(arr3).each(function(index){
                        alert($(this).text()+".."+index);
                    })
                    //4、获取id为main的span标签 后 所有的div兄弟标签
                    var arr4 = $("#main~div");
                    $(arr4).each(function(index){
                        alert($(this).text()+".."+index);
                    })
                });
            </script>
    <span id="main">
                <div>111111</div>
                <div>222222</div>
                <div>333333</div>
                
                 <span>
                        <div>44444</div>
                 </span>
    </span>
            <div>55555</div>
            
            <span>
                <div>66666</div>
            </span>
            
            <div>77777</div>
        </body>

     

     

    一.2 属性选择器:

     [属性名] 获得有 指定属性名 的标签对象。

     [属性名=]  获得 指定属性名等于指定值 的标签对象     value = man

     [属性名*=]  获得 指定属性名 含有 指定值 的标签对象    value *= a

    [属性值$='.jpg'] 所有的属性名包含以".jpg"结尾的元素。

    多个属性选择器可以组合使用[选择器1][选择器2][选择器3]

    实例:

     

    <script>
                $(function(){
                    //1、获取所有存在type属性的标签
                    var arr1 = $("[type]");
                    $(arr1).each(function(index){
                        alert(this.value+".."+index);
                    })
                    2、获取所有type属性为radio的标签
                     var arr2=$("[type=radio]")
                    $(arr2).each(function(index){
                        alert(this.value+".."+index);
                    })
                    3、获取所有type属性含有o的标签
                     var arr3 = $("[type*=o]");
                    $(arr3).each(function(index){
                        alert(this.value+".."+index);
                    })
                    //4、获取所有input标签中的单选框,且name为sex的标签
                     var arr4 = $("input[type=radio][name=sex");
                    $(arr4).each(function(index){
                        alert($(this).val()+".."+index);
                    })
                });
        </script>
                  用户名:<input type="text" name="uname" value="小刘"/><br />
            密码:<input type="password" name="pwd" value="123"/><br />
            性别:
                  <input type="radio" name="sex" value="man" /><input type="radio" name="sex" value="woman" /><br />
            是否VIP:<input type="radio" name="vip" value="no" />不是
                       <input type="radio" name="vip" value="yes" /><br />
        </body>

     

    一.3 基本过滤选择器

     :first 第一个

     :last 最后一个

     :even 偶数,索引 0 开始计数  

     :odd 奇数

     :not(..) 除了指定内容    1234 : not(12)   == >  34

     :eq(index) 获取指定索引的元素

     :gt(index) 大于index索引的元素

     :lt(index) 小于index索引的元素

     

    <html>
        <!--在获取到一系列标签对象之后,的一些筛选条件。-->
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="../js/jquery-3.3.1.js" ></script>
        </head>
        <body>
        <script>
                $(function(){
            
                    //1、在所有DIV标签中,获取第一个div
                //alert($("div:first").html());
                //alert($("div:eq(0)").html());
                    //2、在所有DIV标签中,获取最后一个div
                //alert($("div:last").html());
                    //3、在所有DIV标签中,获取所有偶数位的div
                   var arr1 = $("div:even");
                   $(arr1).each(function(index){
                        alert($(this).html()+".."+index);
                    })
                    //4、在所有DIV标签中,获取所有奇数位的div
                    var arr2 = $("div:odd");
                    $(arr2).each(function(index){
                        alert($(this).html()+".."+index);
                    })
                    //5、在所有DIV标签中,获取除了第一位以外所有的div
                    var arr3 = $("div:not(div:first)");
                    $(arr3).each(function(index){
                        alert($(this).html()+".."+index);
                    })
                    //6、在所有DIV标签中,获取索引等于1的div
                     alert($("div:eq(1)").html());
                    //7、在所有DIV标签中,获取索引大于1的div
                    var arr4 = $("div:gt(1)");
                    $(arr4).each(function(index){
                        alert($(this).html()+".."+index);
                    })
                    //8、在所有DIV标签中,获取索引小于1的div
                    var arr5 = $("div:lt(1)");
                    $(arr5).each(function(index){
                        alert($(this).html()+".."+index);
                    })
                })
        </script>
            <div>11111111,索引是0</div>
            <div>22222222,索引是1</div>
            <div>33333333,索引是2</div>
            <div>44444444,索引是3</div>
            <div>55555555,索引是4</div>
            <div>66666666,索引是5</div>
            <div>77777777,索引是6</div>
            <div>88888888,索引是7</div>    
        </body>
    </html>

     

    一.4表单属性选择器:

     :checked 选中 ,是单选,复选 的选中

     :selected 选择  ,是下拉列表中的算则。

    :enabled 可用

    :disabled 不可用。 

     

     

    <script>
                $(function(){
                    //获取可用的表单输入项
                    var arr1 = $("input:enabled");
                    alert(arr.length);
                    $(arr).each(function(index){
                        alert($(this).val()+index)
                    })
                    获取不可用的表单输入项
                    var arr2 =$("input:disabled");
                    $(arr).each(function(){
                        alert($(this).val());
                    })
                    获取选中的复选框
                    var arr3=$("[type=checkbox]:checked")
                    alert(arr3.length)
                    $(arr3).each(function(){
                        alert($(this).val());
                    })
                    //获取国家下拉框中,被选中的option 
                    var arr4=$("#country>option:selected");
                    $(arr4).each(function(){
                        alert($(this).val());
                    })
                });
            </script>
            <h1>不可用的表单输入项</h1>
            <input type="text" disabled="disabled" />
            <input type="button" value="不可用按钮" disabled="disabled" />
            <h1>复选框</h1>
            <input type="checkbox" name="hobby" value="code"/>编程
            <input type="checkbox" name="hobby" value="swimming" checked="checked"/>游泳
            <input type="checkbox" name="hobby" value="reading" checked="checked"/>阅读
            <hr />
            <h1>下拉选择框</h1>
            城市:<select id="city">
                <option value="">请选择</option>
                <option value="bj">北京</option>
                <option value="sh">上海</option>
            </select>
            <hr />
            国家:<select id="country" multiple="multiple">
                <option value="China" selected="selected">中国</option>
                <option value="America" selected="selected">美国</option>
                <option value="Russia">俄罗斯</option>
                <option value="England">英国</option>
            </select>

    案例二:隔行换色:

     addClass(“”)  给元素对象追加样式

      removeClass()   将元素对象的class删除

     代码实例如下:

     1     <style>
     2             .sss{
     3                 background: lightseagreen;
     4             }
     5         </style>
     6         <script>
     7             $(function(){
     8                 $("tr:not(0):odd").addClass("sss");
     9             })
    10         </script>
    11     <body>
    12         <body onload="changeColor()">
    13         <table border="1" cellpadding="0" cellspacing="0" width="80%">
    14             <tr>
    15                 <th>
    16                     <input type="button" value="全选" onclick="fun2()"/>
    17                     <input type="button" value="全不选" onclick="fun3()"/>
    18                     <input type="button" value="反选" onclick="fun4()"/>
    19                 </th>
    20                 <th>序号</th>
    21                 <th>商品名称</th>
    22                 <th>商品描述</th>
    23                 <th>操作</th>
    24             </tr>
    25             <tr>
    26                 <td>
    27                     <input type="checkbox" class="itemSelect"/>        
    28                 </td>
    29                 <td>1</td>
    30                 <td>手机数码</td>
    31                 <td>手机数码商品信息</td>
    32                 <td>
    33                     <a href="#">修改</a>
    34                     <a href="#">删除</a>
    35                 </td>
    36             </tr>
    37             <tr>
    38                 <td>
    39                     <input type="checkbox" class="itemSelect"/>        
    40                 </td>
    41                 <td>2</td>
    42                 <td>电脑办公</td>
    43                 <td>电脑办公商品信息</td>
    44                 <td>
    45                     <a href="#">修改</a>
    46                     <a href="#">删除</a>
    47                 </td>
    48             </tr>
    49             <tr>
    50                 <td>
    51                     <input type="checkbox" class="itemSelect"/>        
    52                 </td>
    53                 <td>3</td>
    54                 <td>鞋靴箱包</td>
    55                 <td>鞋靴箱包商品信息</td>
    56                 <td>
    57                     <a href="#">修改</a>
    58                     <a href="#">删除</a>
    59                 </td>
    60             </tr>
    61             <tr>
    62                 <td>
    63                     <input type="checkbox" class="itemSelect"/>        
    64                 </td>
    65                 <td>4</td>
    66                 <td>家居饰品</td>
    67                 <td>家居饰品商品信息</td>
    68                 <td>
    69                     <a href="#">修改</a>
    70                     <a href="#">删除</a>
    71                 </td>
    72             </tr>
    73         </table>
    74 
    75     </body>
    76 </html>

    案例三:全选,全不选:

    知识点1.数组遍历:

        <script>
                var  arr =["三国演义","西游记","红楼梦","水浒传"];
                //jQ遍历第一种方式:
                $(arr).each(function(index){
                    //索引
                //    alert(index);
                    //元素
                    //alert(arr[index]);
                    //alert(this);
                    alert("元素为:"+this+",索引为:"+index);
                });
                //jQ遍历方式第二种
                $.each($(arr),function(index){
                    alert("元素为:"+this+",索引为:"+index);
                } );
            </script>

    知识点2:prop() 和

     prop("属性名");  (attr(“属性名”))   获取某个属性名对应的值       ==          $(“#bb”).val();       这两种获取属性的值    

    prop("属性名",属性值); (attr("属性名",属性值);)   将其属性名设置为某个属性值    ==   $(“#bb”).val(“值”);                 

    removeProp("属性名"); 这个可能版本会不兼容      ==                              removeProp不兼容可用 后面这个代替   移除改属性  removeAttr(“属性名”);

    实现反选 :案例

     1         <script>
     2             function quan(){
     3                 $(".itemSelect").prop("checked",true);
     4             }
     5             function bu(){
     6                 $(".itemSelect").prop("checked",false);
     7             }
     8 //            function fan(){
     9                 //
    10 //                //获取所有的复选框,将其checked修改为false
    11 //                var arr1 =$(".itemSelect:checked");
    12 //                //获取所有的未选中复选框,将其checked修改为true
    13 //                var arr2 =$(".itemSelect:not(.itemSelect:checked)");
    14 //                arr1.prop("checked",false);
    15 //                arr2.prop("checked",true);
    16 //            }
    17             //用jQ数组实现反选
    18             function fan(){
    19             var arr =$(".itemSelect");
    20             //遍历
    21              arr.each(function(){
    22                  var temp = $(this).prop("checked");
    23                  //取反
    24                  $(this).prop("checked",!temp);
    25              })
    26             }
    27         </script>
    28     <body>
    29         <table border="1" cellpadding="0" cellspacing="0" width="80%">
    30             <tr>
    31                 <th>
    32                     <input type="button" value="全选" onclick= "quan()"/>
    33                     <input type="button" value="全不选" onclick= "bu()"/>
    34                     <input type="button" value="反选" onclick= "fan()"/>
    35                 </th>
    36                 <th>编号</th>
    37                 <th>姓名</th>
    38             </tr>
    39             <tr>
    40                 <td>
    41                     <input type="checkbox" class="itemSelect" />        
    42                 </td>
    43                 <td>1</td>
    44                 <td>唐三藏</td>
    45             </tr>
    46             <tr>
    47                 <td>
    48                     <input type="checkbox" class="itemSelect" />        
    49                 </td>
    50                 <td>2</td>
    51                 <td>悟空</td>
    52             </tr>
    53             <tr>
    54                 <td>
    55                     <input type="checkbox" class="itemSelect" />        
    56                 </td>
    57                 <td>3</td>
    58                 <td>八戒</td>
    59             </tr>
    60             <tr>
    61                 <td>
    62                     <input type="checkbox" class="itemSelect" />        
    63                 </td>
    64                 <td>4</td>
    65                 <td>沙和尚</td>
    66             </tr>
    67         </table>
    68     </body>

    案例四:省市二级联动:

    jQ中的事件实现方式:

        <input type="text" id="uname" value="黄蓉" /><br />
            <input type="button" value="点击获取输入框的value值" id="aaa"/>
            <input type="button" value="点击设置输入框的value值" id="bbb"/>
            <script>
                $(function(){
                    //jQ中的事件获取格式
                    $("#aaa").click(function(){
                        alert($("#uname").val());
                    })
                    //jQ中的事件获取格式
                    $("#bbb").click(function(){
                        $("#uname").val("郭靖");
                    })
                })

    jQ中追加元素的两种方式;

        <ul id="rank">
                <li>Php</li>
                <li>Android</li>
                <li>Ios</li>
            </ul>
            <hr />
            <input type="button" value="列表尾部追加Java" id="aaa"/>
            <input type="button" value="列表头部追加Java" id="bbb"/>
            <script>
                $(function(){
                    //尾部追加
                    $("#aaa").click(function(){
                        //往哪儿追加
                        var ul = $("#rank");
                        //追加什么
                        var li = "<li>JAVA</li>";
                        //追加什么动作(方法)
                        //ul.append(li);
                        $(li).appendTo(ul);
                    })
                    //头部追加
                    $("#bbb").click(function(){
                        //往哪儿追加
                        var ul = $("#rank");
                        //追加什么
                        var li = "<li>JAVA</li>";
                        //追加什么动作(方法)
                        //ul.prepend(li);
                        $(li).prependTo(ul);
                  })
            })
            </script>

    省市联动代码案例实现:

    追加思路:先获取往哪儿追加的值,再获取追加什么,再初始化往哪儿追加的内容体,如果是数组就遍历,得出值,然后用相应的追加方法追加。

            // 定义二维数组,存储城市信息
            var cities = new Array();
            cities[0] = new Array("海淀区","昌平区","朝阳区");
            cities[1] = new Array("郑州市","商丘市","开封市","洛阳市","平顶山市");
            cities[2] = new Array("济南市","青岛市","烟台市","潍坊市","淄博市");
            cities[3] = new Array("石家庄市","唐山市","邯郸市","廊坊市");
            cities[4] = new Array("南京市","苏州市","扬州市","宿迁市");
            </script>
        </head>
        <body>
            <select id="province" onchange= "changeCity(this.value)"  style="150px">
                <option value="">----请-选-择-省----</option>
                <option value="0">北京</option>
                <option value="1">河南省</option>
                <option value="2">山东省</option>
                <option value="3">河北省</option>
                <option value="4">江苏省</option>
            </select>
            <select id="city" style="150px">
                <option value="">----请-选-择-市----</option>
            </select>
            
            
            <script>
              function    changeCity(val){
                  //根据var获取省份对应的下标
                  var arr = cities[val];
                  //往哪儿加
                  var city =$("#city");
                  //恢复到初始
                  city.html("<option value=''>---请-选-择-市---</option>");
                  $(arr).each(function(){
                      //加什么?
                      var temp ="<option value=''>"+this+"</option>";
                      //追加的方法
                      city.append(temp);
                  })
              }
            </script>

    案例五:列表左右选择

    这种下拉列表:主要应用下拉列表的选取和所有的方法做题。

    案例实现:

    <body>
            <select id="leftSelectId" multiple="multiple" style=" 100px;height: 200px;">
                <option>左1</option>
                <option>左2</option>
                <option>左3</option>
                <option>左4</option>
                <option>左5</option>
            </select>
            <input type="button" value="》" id="a"/>
            <input type="button" value="》》" id="b"/>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="button" value="《"  id="c" />
            <input type="button" value="《《" id="d"/> 
            <select id="rightSelectId" multiple="multiple" style=" 100px;height: 200px;">
                <option>右1</option>
                <option>右2</option>
                <option>右3</option>
                <option>右4</option>
                <option>右5</option>
            </select>
            <hr />
            <script>
                $(function(){
                    //1.将左边选中的追加到右边末尾
                    $("#a").click(function(){
                        //往哪儿追加
                        var right = $("#rightSelectId");
                        //追加什么?
                        var leftcont = $("#leftSelectId option:selected");
                        //追加方法
                        right.append(leftcont);
                    })
                    //1.将左边所有的追加到右边末尾
                    $("#b").click(function(){
                        //往哪儿追加
                        var right = $("#rightSelectId");
                        //追加什么?
                        var leftcont = $("#leftSelectId option");
                        //追加方法
                        right.append(leftcont);
                    })
                    //1.将右边选中的追加到左边末尾
                    $("#c").click(function(){
                        //往哪儿追加
                        var left = $("#leftSelectId");
                        //追加什么?
                        var rightcont = $("#rightSelectId option:selected");
                        //追加方法
                        left.append(rightcont);
                    })
                    //1.将右边所有的追加到左边末尾
                    $("#d").click(function(){
                        //往哪儿追加
                        var left = $("#leftSelectId");
                        //追加什么?
                        var rightcont = $("#rightSelectId option");
                        //追加方法
                        left.append(rightcont);
                    })
                })
            </script>
        </body>

     !!!!!!!好累!!!!!!!!!!!!!!!!!!继续坚持!!!!!!!!!!!!!!!!!!!!!!!

      jQ  就是啰嗦点 但是难度还好  加油就ok!!!

  • 相关阅读:
    Java对象序列化文件追加对象的问题,以及Java的读取多个对象的问题解决方法。
    解决chrome在docky上的图标模糊或不能锁定的问题
    获取表单中的输入内容、单选按钮、复选框的输入内容
    用idea写servlet文件
    get方法和post方法
    解决Only a type can be imported. com.mysql.jdbc.Connection resolves to a package的报错问题
    idea中如何配置tomcat
    JDBC中的PreparedStatement
    JDBC中的ResultSet
    JDBCl链接中Statement
  • 原文地址:https://www.cnblogs.com/ych961107/p/11342771.html
Copyright © 2011-2022 走看看