• JS基础(四)之jQuery


    31、jQuery(http://jquery.com/)是一个快速、简洁的JavaScript框架。

    • 它封装了JavaScript常用的功能代码,提供一种便捷的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
    • jQuery主要包括jQuery Core(核心库)、jQuery UI(界面库)、Sizzle(CSS选择器)、jQueryMobile(jQuery移动版)和QUnit(测试套件)5个部分

    32、jQuery特性

    • 优雅的语法规则:发生在同一个jQuery对象上的一组动作,可直接连写,无需重复获取对象
    • 框架封闭:jquery只建立一个名为jQuery的对象,其所有的方法都建立在这个对象之下
    • 封装繁琐的底层技术:jQuery定义了大量的方法,还封装了大量的事件处理函数,是的jQuery处理事件绑定非常稳定;将所有的Ajax操作封装到一个函数$.ajax()中
    • 自成体系:完全摆脱JavaScript的设计模式,允许用户在jQuery环境下跳动jQuery函数选择相关匹配元素,然后直接在jQuery对象上完成操作而无需在jQuery和JavaScript两种设计模式中来回切换

    33、jQuery构造器

    jQuery构造器即jQuery()函数,简写为$(),可以接收4个类型的参数

     1 $(function(){ 
     2     var red = $("p span");        //选择元素中包含的span元素,并返回该元素的jQuery对象引用指针
     3     red.css("color","red");        //调用jQuery对象的css()函数,定义选取对象的CSS样式,其中第1个参数表示CSS属性名,第2个参数表示CSS属性值。
     4 })
     5 </script>
     6 <script>
     7 $(function(){ 
     8     $("<div><span>文本块3</span></div>").appendTo("body");//HTML代码段
     9 })
    10 </script>
    11 <script src="jquery/jquery-1.11.1.js" type="text/javascript"></script>
    12 <script>
    13 $(function(){ 
    14     $("span").css("font-size","12px");//把元素转化为jQuery对象,在调用jQuery方法
    15 })
    16 </script>
    17 <script>
    18 $(function(){
    19         alert("Hello World!");//jQuery绑定函数
    20 });
    21 </script>

    22 <script>
    23 $(function(){
    24     var span = document.getElementsByTagName("span")[0];     //获取节点对象,此时返回DOM元素对象
    25     var span = $(span);                //把DOM对象转换为jQuery对象
    26     span.css("color","red");            //调用jQuery对象的css()方法定义字体颜色为红色
    27 });
    28 </script>
    29 <script>
    30 $(function(){
    31     var span = $("span")[0];                //把jQuery对象转换为DOM对象
    32     span.style.color = "blue";            //调用DOM对象的style属性,设置字体颜色为蓝色
    33 });
    34 </script>

    34、jQuery基本用法

      1 <script>
      2 $(function(){ 
      3     var li = $("li");                    
      4     li.each(function(n){                 
      5         this.style.fontSize = 30- n*2 +"px";//$(this).css("font-size",30- n*2 +"px");    
      6         if(n==2) return false;
      7     });
      8 })
      9 </script>
     10 <script>
     11 $(function(){ 
     12     var li = $("li");        
     13     alert(li.size());                                //返回值为10
     14     alert(li.length);                                 //返回值为10
     15 })
     16 </script>
     17 <script>
     18 $(function(){ 
     19     var li = $("li").get().reverse();            //把当前jQuery对象转换为为颠倒的DOM集合
     20     var ol = $("ol").html(li);
     21 })
     22 </script>
     23 <script src="jquery/jquery-1.11.1.js" type="text/javascript"></script>
     24 <script>
     25 $(function(){ 
     26     var li = $("li");    
     27     var temp  = $("li:contains('陆 游')");
     28     alert(li.index(temp));
     29 })
     30 </script>
     31 </head>
     32 <body>
     33 <h1>宋词排行榜 </h1>
     34 <ol>
     35     <li>苏 轼《念奴娇·赤壁怀古》</li>
     36     <li>岳 飞《满江红·怒发冲冠》 </li>
     37     <li>李清照《声声慢·寻寻觅觅》 </li>
     38     <li>苏 轼《水调歌头·明月几时有》 </li>
     39     <li>柳 永《雨霖铃·寒蝉凄切》 </li>
     40     <li>辛弃疾《永遇乐·千古江山》 </li>
     41     <li>姜 夔《扬州慢·淮左名都》 </li>
     42     <li>陆 游《钗头凤·红酥手》 </li>
     43     <li>辛弃疾《摸鱼儿·更能消》 </li>
     44     <li>姜 夔《暗香·旧时月色》 </li>
     45 </ol>
     46 <script>
     47 $(function(){ 
     48     var href = $("a").attr("href");//只显示第一个值
     49     alert(href);
     50 })
     51 </script>
     52 </head>
     53 <body>
     54 <ul>
     55     <li><a href="http://www.baidu.com/" target="_blank">百度</a></li>
     56     <li><a href="http://www.sohu.com/" target="_self">搜狐</a></li>
     57     <li><a href="http://www.sina.com.cn/" target="_top">新浪</a></li>
     58     <li><a href="http://www.qq.com/" target="new">腾讯</a></li>
     59 </ul>
     60 <script>
     61 $(function(){ 
     62     var href = $("a:contains('搜狐')").attr("href");
     63     alert(href);
     64 })
     65 </script>
     66 <script>
     67 $(function(){ 
     68     $("a").each(function(){
     69         $(this).attr("title",this.innerHTML + "" + $(this).attr("href") + "" );
     70     });
     71 })
     72 </script>
     73 <script>
     74 $(function(){ 
     75     $("a").attr("title", function(){//增加属性
     76         return this.innerHTML + "" + $(this).attr("href") + "" ;
     77     });
     78 })
     79 </script>
     80 <script>
     81 $(function(){ //增加多个属性
     82     $("img").attr({"100",height:"100",title:"这是一个示例",alt:"示例图像"});
     83 })
     84 </script>
     85 <script>
     86 $(function(){ 
     87     $("img").removeAttr("width");//删除指定属性
     88 })
     89 </script>
     90 
     91 <script>
     92 $(function(){ //定义类样式
     93     $("p").addClass("red");//$("p").attr("class","red");
     94 })
     95 </script>
     96 <script>
     97 $(function(){ 
     98     $("li").each(function(){                            //遍历jQuery对象内所有对象
     99             this.onmouseover = function(){                //为当前元素注册鼠标经过时的事件
    100                 $(this).toggleClass("bg");                    //开关背景样式类(bg)
    101             }
    102             this.onmouseout = function(){                    //为当前元素注册鼠标移开时的事件
    103                 $(this).toggleClass("bg");                    //开关背景样式类(bg)
    104             }
    105             this.onclick = function(){                        //为当前元素注册鼠标单击时的事件
    106                 $(this).toggleClass("bg1");                //开关背景样式类(bg1)
    107             }
    108     });
    109 })
    110 </script>
    111 
    112 <body>
    113 <p>段落文本<span>1</span></p>
    114 <script>
    115 alert($("p").text());//输出段落文本1,忽略span标签
    116 </script>
    117 </body>
    118 <body>
    119 <p>段落文本<span>1</span></p>
    120 <script>
    121 $("p").text("<img src='images/1.jpg' width='100' />");//替换文本 输出<img……>
    122 </script>
    123 </body>
    124 <body>
    125 <p>段落文本<span>1</span></p>
    126 <script>
    127 alert($("p").html());//输出 段落文本<span>1</span>
    128 </script>
    129 </body>
    130 <body>
    131 <p>段落文本<span>1</span></p>
    132 <script>
    133 $("p").html("<img src='images/1.jpg' width='100' />");//输出 图片
    134 </script>
    135 </body>
    136 <body>
    137 <input type="text" value="文本框" />
    138 <input type="radio" value="单选按钮" />
    139 <input type="checkbox" value="复选框" />
    140 <input type="hidden" value="隐藏域" />
    141 <input type="submit" value="提交按钮"/>
    142 <script>
    143 alert($("input").val());
    144 alert($($("input")[1]).val());                        //显示单选按钮的值
    145 alert($($("input")[2]).val());                        //显示复选框的值
    146 alert($($("input")[3]).val());                        //显示隐藏域的值
    147 alert($($("input")[4]).val());                        //显示提交按钮的值
    148 </script>
    149 </body>
    150 <body>
    151 <select multiple="multiple">
    152     <option value="1">选项1</option>
    153     <option value="2" selected="selected">选项2</option>
    154     <option value="3" selected="selected">选项3</option>
    155 </select>
    156 <script>
    157 alert($("select").val());//输出 2,3
    158 </script>
    159 </body>
    160 <body>
    161 <input type="text" />
    162 <script>
    163 $("input").val("文本框的值");//为文本框赋值 文本框的值
    164 </script>
    165 </body>
    166 <body>
    167 <input type="radio" value="radio1" />单选按钮1
    168 <input type="radio" value="radio2" />单选按钮2<br>
    169 <input type="checkbox" value="check1" />复选框1
    170 <input type="checkbox" value="check2" />复选框2<br>
    171 <select multiple="multiple">
    172     <option value="1">选项1</option>
    173     <option value="2">选项2</option>
    174     <option value="3">选项3</option>
    175 </select>
    176 <script>
    177 $("input").val(["radio2","check2"]);//单选按钮和复选框必须要使用数组来传递值
    178 $("select").val(["1","3"]);//下拉菜单可以不用数组传递值
    179 </script>
    180 </body>

    35、选择器和过滤器

     1 <script src="jquery/jquery-1.11.1.js" type="text/javascript"></script>
     2 <script>
     3 $(function(){
     4     $("#p1");                                //ID选择器
     5     $("#box1 p");                            //包含选择器
     6     $("#box1>#p1");                        //子选择器
     7     $("p#p1");                            //指定标签选择器
     8     $("p[id='p1']");                         //匹配属性等于特定属性值
     9     $("[id$='1']");                             //匹配属性值结尾的值
    10     $("#box1 [id^='p']");                     //包含选择器,配合匹配属性值开始的值
    11     $("[id*='1']");                             //匹配属性值包含某个字符串
    12 })
    13 </script>
    14 <script>
    15 $(function(){
    16     var $temp = $("li");
    17     $temp.css("color","red");//类选择器
    18 })
    19 </script>
    20 <style type="text/css">
    21 </style>
    22 </head>
    23 <body>
    24 <ul id="list">
    25     <li>列表项1</li>
    26     <li>列表项2</li>
    27     <li class="l3">列表项3</li>
    28     <li></li>
    29 </ul>
    30 </body>
    31 <script>
    32 $(function(){
    33     $("div:hidden").css("display","block");//使隐藏元素显示出来
    34 })
    35 </script>
    36 <style type="text/css">
    37 </style>
    38 </head>
    39 <body>
    40 <div>盒子1</div>
    41 <div style="display:none">盒子2</div>
    42 <div><p>盒子3</p></div>
    43 </body>
    44 <script>
    45 $(function(){//表单选择器,:input匹配input、select、button、textarea元素
    46     $("input:text").css("border","solid 1px red");
    47     $("input:checkbox").css("border","solid 1px red");
    48     $("input:radio").css("border","solid 1px red");
    49     $(":image").css("border","solid 1px red");
    50     $(":file").css("border","solid 1px red");
    51     $(":submit").css("border","solid 1px red");
    52     $(":reset").css("border","solid 1px red");
    53     $(":password").css("border","solid 1px red");
    54     $(":button").css("border","solid 1px red");
    55 })
    56 </script>
    57 <style type="text/css">
    58 </style>
    59 </head>
    60 <body>
    61 <form>
    62     <input type="text" value="文本框" />
    63     <input type="checkbox" value="复选框" />复选框
    64     <input type="radio" value="单选按钮" />单选按钮
    65     <input type="image" src="images/1.jpg" value="图像按钮" />
    66     <input type="file" value="文件域" />
    67     <input type="submit" value="提交按钮" />
    68     <input type="reset" value="重置按钮" />
    69     <input type="password" value="密码域" />
    70     <input type="button" value="普通按钮" />
    71     <select>
    72         <option value="下拉菜单">下拉菜单</option>
    73     </select>
    74     <textarea>文本域</textarea>
    75     <button>按钮</button>
    76 </form>
    77 </body>
    78 <script>
    79 $(function(){//过滤器是函数
    80     var divs = $("div");
    81     divs.eq(0).css("color","red");//索引值为0 即第一个div元素
    82     divs.filter(".red,#box1").css("color","red");//过滤出满足匹配条件的div元素
    83     divs.slice(0,2).css("color","red");//使用slice函数进行过滤
    84 })
    85 </script>
    86 <style type="text/css">
    87 </style>
    88 </head>
    89 <body>
    90 <div>盒子1</div>
    91 <div id="box1">盒子2</div>
    92 <div class="red">盒子3</div>
    93 </body>

     36、文档处理、css处理

      1 <script>
      2 $(function(){
      3     $("div").append("<span style='color:red'>套子</span>");//span标签放在div标签里,盒子后
      4 })
      5 </script>
      6 <style type="text/css">
      7 </style>
      8 </head>
      9 <body>
     10 <div>盒子</div>
     11 
     12 </body>
     13 <script>
     14 $(function(){
     15     $("p").appendTo("#box");//p放在div里,div内容后
     16     $("p").prepend($("#box")[0]);//div放在p里,p内容前
     17     $("p").prependTo($("#box")[0]);//p放在div里,div内容前
     18 })
     19 </script>
     20 <script>
     21 $(function(){
     22     $("div").after($("p"));
     23     $("div").before($("p"));
     24     $("div").insertAfter($("p"));
     25     $("div").insertBefore($("p"));
     26 
     27 })
     28 </script>
     29 <style type="text/css">
     30 </style>
     31 </head>
     32 <body>
     33 <p>段落</p>
     34 <div id="box">盒子</div>
     35 </body>
     36 <script src="jquery/jquery-1.11.1.js" type="text/javascript"></script>
     37 <script>
     38 $(function(){
     39     $("a").wrap(document.getElementsByTagName("li")[0]);//    $("a").wrap("<div></div>");//为每个a元素包裹一层li元素
     40     $("li").wrapAll(document.getElementsByTagName("ul")[0]);//为所有的li元素包裹一个ul元素
     41     $("li").wrapInner("<span></span>");//为每个li元素内嵌一层span元素
     42 })
     43 </script>
     44 <style type="text/css">
     45 </style>
     46 </head>
     47 <body>
     48 <a href="#">超链接1</a><a href="#">超链接2</a><a href="#">超链接3</a>
     49 </body>
     50 <script>
     51 $(function(){
     52     $("span").replaceWith("<div>盒子</div>");//输出 <div>盒子</div><div>盒子</div><div>盒子</div>
     53         $("span").replaceAll("div");//与上相反
     54 })
     55 </script>
     56 <style type="text/css">
     57 </style>
     58 </head>
     59 <body>
     60 <span>包子</span><span>包子</span><span>包子</span>
     61 </body>
     62 <script>
     63 $(function(){
     64    $("div").click(function(){
     65        $(this).css("color","red");
     66    }).clone(true).appendTo("p");//克隆事件添加到p标签里 段落文本之后
     67    $("span").click(function(){
     68        $(this).css("color","red");
     69    })
     70    var span=$("span").remove();// remove()删除元素不保留事件 单击不变色
     71    $("p").prepend(span);//span元素剪切到span元素里 段落文本之前
     72 
     73 /*
     74    var span=$("span").detach();
     75    $("p").prepend(span);//detach()删除元素保留事件 单击span变红
     76 */
     77 })
     78 </script>
     79 <style type="text/css">
     80 </style>
     81 </head>
     82 <body>
     83 <div>盒子1</div>
     84 <p>段落文本3</p>
     85 <span>span</span>
     86 </body>
     87 <script>
     88 $(function(){
     89     $("p").css({//CSS属性名可以不加引号,但是对于复合属性名,则必须增加引号
     90         color:"blue",
     91         "font-size":"14px",
     92         "background-color":"red"
     93     });
     94     $("p").css("border","solid 1px blue");
     95     alert($("p").css("border"));
     96 
     97 })
     98 </script>
     99 <style type="text/css">
    100 </style>
    101 </head>
    102 <body>
    103 <p>段落1</p><p>段落2</p>
    104 </body>
    105 <script>
    106 $(function(){
    107     $("p:last").offset({
    108         left:50,
    109         top:50
    110     });
    111     var offset = $("p:last").offset();
    112     alert( "左侧距离: " + offset.left + ", 顶部距离: " + offset.top ); 
    113 })
    114 </script>
    115 <script>
    116 $(function(){
    117     var div = $("div");
    118     $("p").html("innerHeight=" + div.innerHeight() + "<br> outerHeight=" + div.outerHeight());//输出innerHeight=199.8
    119 outerHeight=299
    120     
    121 })
    122 </script>
    123 <style type="text/css">
    124 div{
    125     100px;
    126     height:100px;
    127     padding:50px;
    128     border:solid 50px red;
    129 }
    130 </style>
    131 </head>
    132 <body>
    133 <div></div>
    134 <p></p>
    135 </body>

     37、事件处理、动画处理

      1 <script src="jquery-1.11.1.js" type="text/javascript"></script>
      2 <script>
      3 window.onload=function(){
      4     alert("页面加载完毕4!");
      5 }
      6 window.onload=function(){
      7     alert("页面加载完毕3!");
      8 }
      9 $(document).ready(function(){
     10     alert("页面加载完毕2!");
     11 })
     12 $(document).ready(function(){
     13     alert("页面加载完毕1!");
     14 })
     15 
     16 $(function(){
     17         alert("页面加载完毕0!");
     18     
     19 })
     20 $(function(){
     21         alert("页面加载完毕-1!");
     22     
     23 });
     24 function f(){
     25     alert("页面加载完毕-2!");
     26 }
     27 </script>
     28 <style type="text/css">
     29 </style>
     30 </head>
     31 <body onload="f()">//2 1 0 -1 -2
     32 </body>
     33 <script>
     34 $(function(){
     35     $("div").bind("me",function(){//$('#myol li').bind('click',getHtml);$('#myol li').live('click',getHtml);$('#myol').delegate('li','click',getHtml);$('#myol li').on('click',getHtml);$('#myol').on('click', 'li',getHtml);
     36         alert($(this).text());//live()方法已废除,bind()方法、delegate()方法都调用内部on()方法,建议使用on()方法,更快更灵活;
     37     });
     38         $("div").trigger("me");//默认时间和自定义事件必须由此方法来触发
     39 /*
     40     $("div").bind("mouseover",function(){//或者把trigger方法封装在其他事件中,借由鼠标滑入时自动触发
     41         $("div").trigger("me");
     42     })
     43 */
     44     $("div").bind("click",function(){//绑定鼠标单击事件
     45         alert($(this).text());
     46     })
     47     $("p").bind("mouseover",function(){//借由鼠标滑入触发单击事件或者直接单击也可以触发该事件
     48         $("div").trigger("click");
     49     })
     50     $("input").focus(function(){
     51         $("<span>单击一次!</span>").appendTo("body");
     52     })
     53     $("#ok").click(function(){
     54         $("input").triggerHandler("focus");//triggerHander方法阻止默认事件触发,本例聚焦事件只可以由单击事件触发,不再由聚焦事件触发
     55     })
     56 })
     57 </script>
     58 <script>
     59 $(function(){
     60     $("p").hover(//jQuery中自定义的两个事件hover(over,out)、toggle(fn,fn)
     61         function(){
     62             $(this).css("color","red");
     63         },
     64         function(){
     65             $(this).css("color","transparent");//恢复默认颜色
     66         }
     67     );
     68     $("footer").toggle(function(){//jQuery在1.9版本中删除toggle()方法
     69         $(this).css("color","pink");
     70     },
     71     function(){
     72         $(this).css("color","transparent");
     73     }
     74     );
     75     $("div").one("click",{who:"zhu"},function(event){//one()事件仅能执行一次即自动撤销
     76         alert(event.data.who);
     77     });
     78 
     79 });
     80 </script>
     81 <script>
     82 $(function(){
     83     $("p").show(1000,function(){//只有隐藏元素才可以执行show()方法
     84         alert($(this).text()+"显示完毕");
     85     })
     86     $("div").slideDown("slow");//分大小写 隐藏元素以滑动效果显示
     87     $("h2").show(1000,function(){//只有显示元素才可以执行hide()方法
     88         alert($(this).text()+"隐藏完毕");
     89     })
     90     $("h2").slideUp("slow");//显示元素以滑动效果隐藏
     91     $("h3").slideToggle("slow");//隐藏元素已经显示的元素 或者显示已经隐藏的
     92 })
     93 </script>
     94 <style type="text/css">
     95 </style>
     96 </head>
     97 <body>
     98 <p style="display:none">段落文本</p>
     99 <div style="display:none">示例div元素</div>
    100 <h2>h2示例元素</h2><br/><br/>
    101 <h3>h3元素示例</h3>
    102 
    103 </body>
    104 <script>
    105 $(function(){
    106     $("p").fadeIn("2000");//只能作用于隐藏元素
    107     $("p").bind("mouseover",function(){//淡出淡入
    108         $("p").fadeOut(100);
    109         $("p").fadeIn(100);
    110         $("p").fadeOut(100);
    111         $("p").fadeIn(100);
    112     })
    113     $("div").fadeTo("slow",0.1,function(){
    114         $(this).fadeTo("slow",1);
    115     })
    116 })
    117 </script>
    118 <style type="text/css">
    119 </style>
    120 </head>
    121 <body>
    122 <p style="display:none">段落文本段落文本段落文本段落文本段落文本</p>
    123 <div>雨夜,湖边风雨发作,直教人瑟瑟发抖!</div>
    124 </body>
  • 相关阅读:
    为什么丰田的软件存在缺陷?(转)
    C# WebBrowser 网页缩放的方法
    mysql截取字符串substring_index(str,oat,index)
    保留两位小数的百分比正则表达式
    js对字符串replace等操作
    tomcat学习
    Date转String格式小tip
    echarts图随浏览器的大小自适应变化大小
    echarts Ajax调用数据控制台显示option.data.length<1的问题
    java时间String转换成date型及日期相差天数计算
  • 原文地址:https://www.cnblogs.com/agasha/p/9997965.html
Copyright © 2020-2023  润新知