• jQuery02


    一、使用jQuery为标签添加属性或者样式

      1、$("#id名").css("css属性名","属性值");比如:$("tbody tr:even").css("background-color","yellow");

      2、使用addClass("class名"),然后在引入的css文件中写样式:.class名{。。。};比如:$("tbody tr:even").addClass("even"); css中:.even{back-groundcolor:red;}

    二、js和jQuery当前对象的区别、事件的区别

      1、js中用this来表示当前操作的对象;而jQuery中用${this}来表示当前操作的对象;

      注:这里指的是,要使用jQuery属性,或者使用jQuery中的方法时,就必须用${this}.属性名;如:${this}.value;但是,jQuery代码中也可以用this代表当前对象,前提是js和jQuery属性或者方法不混用;

      2、jQuery中的事件去掉了前边的on;

    三、jQuery中的遍历(遍历集合,js中只有数组,没有集合)

      

      注:关于方式二,可以遍历对象,例如:

    四、文档处理操作: 

      1、追加(插入操作)内容(A、B是jQuery对象)

          apend:  A.append(B)  将B追加到A的内容的末尾处;

          appendTo: A.appendTo(B)  将A加到B内容的末尾处;

        

      2、删除

        a、empty();返回值:jQuery,删除匹配的元素集合中所有的子节点。

        

        b、remove([expr]);返回值:jQuery;从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。

        

        c、detach([expr]);返回值:jQuery;这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。

        

      3、复制操作:

        

      4.替换操作

        

    五、属性操作、表单对象属性;

      1、attr属性操作:

        a、attr(name):$("img").attr("src")获取的是img标签里的src属性的值,返回:/xxx.jpg;

        b、attr(key,value):$("img").attr("height","800px");设置属性的值;

        c、attr(properties):同时设置多个属性值;$("img").attr({"width":"90px","height":"100px"});

        d、removeAttr(name):删除某个属性和值;$("img").removeAttr("width");

      2、css类操作

        

      3、val()、text()、html();

      

      html操作:

        

      text操作:

        

      val操作:

        

      3、表单对象属性:

        enabled、disabled、checked、selected,下面以selected为例:

      

        结果只显示出被选中的option,即获得了被选中的option对象;

    六、jQuery案例

    1、省市二级联动

      (1)步骤分析:

    第一步:确定事件(change事件),在绑定的函数里面获取用户选择的省份
    
    第二步:创建二维数组来存储省份和城市
    
    第三步:遍历二维数组中的省份(与用户选择的省份进行比较)【使用JQ的遍历操作】
    
    第四步:接着遍历数组中的城市
    
    第五步:创建一个城市文本节点
    
    第六步:创建option元素节点
    
    第七步:将文本节点添加到元素节点中【使用JQ的文档操作方法】
    
    第八步:获取第二个下拉列表并将option元素节点添加进去
    
    第九步:清除第二个下拉列表的option内容

      (2)代码实现:

     1 js代码:
     2 <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
     3 <script>
     4     $(function(){
     5         //2.创建二维数组用于存储省份和城市
     6         var cities = new Array(3);
     7         cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
     8         cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
     9         cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
    10         cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");
    11         
    12         $("#province").change(function(){
    13             //10.清除第二个下拉列表的内容
    14             $("#city").empty();
    15             
    16             //1.获取用户选择的省份
    17             var val = this.value;
    18             //alert(val);
    19             //3.遍历二维数组中的省份
    20             $.each(cities,function(i,n){
    21                 //alert(i+":"+n);
    22                 //4.判断用户选择的省份和遍历的省份
    23                 if(val==i){
    24                     //5.遍历该省份下的所有城市
    25                     $.each(cities[i], function(j,m) {
    26                         //alert(m);
    27                         //6.创建城市文本节点
    28                         var textNode = document.createTextNode(m);
    29                         //7.创建option元素节点
    30                         var opEle = document.createElement("option");
    31                         //8.将城市文本节点添加到option元素节点中去
    32                         $(opEle).append(textNode);
    33                         //9.将option元素节点追加到第二个下拉列表中去
    34                         $(opEle).appendTo($("#city"));
    35                     });
    36                 }
    37             });
    38             
    39         });
    40     });
    41 </script>
    42 
    43 html代码(部分):
    44 <tr>
    45                             <td>籍贯</td>
    46                             <td>
    47                                 <select onchange="changeCity(this.value)">
    48                                     <option>--请选择--</option>
    49                                     <option value="0">湖北</option>
    50                                     <option value="1">湖南</option>
    51                                     <option value="2">河北</option>
    52                                     <option value="3">河南</option>
    53                                 </select>
    54                                 <select id="city">
    55                                     
    56                                 </select>
    57                             </td>
    58                         </tr>
    View Code

     2、下拉列表左右选择

        效果图:

      (1)步骤分析:

    第一步:确定事件(鼠标单击事件click)
    第二步:获取左侧下拉列表被选中的option($(“#left option:selected”)) [假设左侧select定义了一个id=left]
    第三步:将获取到的option添加到右侧的下拉列表中去。(append方法的使用)

      (2)代码实现:

     1 js代码:
     2 <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
     3 <script>
     4     $(function(){
     5         /*1.选中单击去右边*/
     6         $("#selectOneToRight").click(function(){
     7             $("#left option:selected").appendTo($("#right"));
     8         });
     9         
    10         /*2.单击全部去右边*/
    11         $("#selectAllToRight").click(function(){
    12             $("#left option").appendTo($("#right"));
    13         });
    14         
    15         /*3.选中双击去右边*/
    16         $("#left option").dblclick(function(){
    17             $("#left option:selected").appendTo($("#right"));
    18         });
    19     });
    20 </script>
    21 
    22 html代码:
    23 <td>
    24                     <span style="float: left;">
    25                         <font color="green" face="宋体">已有商品</font><br/>
    26                         <select multiple="multiple" style=" 100px;height: 200px;" id="left">
    27                             <option>IPhone6s</option>
    28                             <option>小米4</option>
    29                             <option>锤子T2</option>
    30                         </select>
    31                         <p><a href="#" style="padding-left: 20px;" id="selectOneToRight">&gt;&gt;</a></p>
    32                         <p><a href="#" style="padding-left: 20px;" id="selectAllToRight">&gt;&gt;&gt;</a></p>
    33                     </span>
    34                     <span style="float: right;">
    35                         <font color="red" face="宋体">未有商品</font><br/>
    36                         <select multiple="multiple" style=" 100px;height: 200px;" id="right">
    37                             <option>三星Note3</option>
    38                             <option>华为6s</option>
    39                         </select>
    40                         <p><a href="#" >&lt;&lt;</a></p>
    41                         <p><a href="#" >&lt;&lt;&lt;</a></p>
    42                     </span>
    43                 </td>
    View Code

    七、jQuery事件总结(jQuery里的事件都是方法,比如blur(fn)、change(fn)、click(fn),fn代表函数)

      1、ready()页面载入事件(页面加载顺序问题,及解决方案);如:

      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>页面未加载执行失败</title>
     7         <script type="text/javascript">
     8             document.getElementById("panel").onclick = function() {
     9                 alert("元素已经加载完毕 !");
    10             }
    11             /*
    12                 执行错误,为什么?
    13                 因为dom还未加载完毕。
    14             */
    15         </script>
    16     </head>
    17 
    18     <body>
    19         <div id="panel">click me.</div>
    20     </body>
    21 
    22 </html>
    加载遇到的顺序问题
      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>4-1-2</title>
     7     </head>
     8     <!--解决办法:
     9         方式一:将JS代码移到需要操作的html代码后面,一般建议放到body的外面
    10         方式二:将JS代码放到一个页面加载函数中去-->
    11 
    12     <body>
    13         <div id="panel">click me.</div>
    14         <script type="text/javascript">
    15                 document.getElementById("panel").onclick = function() {
    16                     alert("元素已经加载完毕 !");
    17                 }
    18                 /*正确执行*/
    19         </script>
    20     </body>
    21 
    22 </html>
    问题的解决方案

      2、bind("click",function(){})绑定函数事件;如:

      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>点击展开</title>
     7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
     8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
     9         <script type="text/javascript">
    10             $(function() {
    11                 $("#panel h5.head").bind("click", function() {
    12                     var $content = $(this).next();
    13                     if($content.is(":visible")) {
    14                         $content.hide();
    15                     } else {
    16                         $content.show();
    17                     }
    18                 })
    19             })
    20         </script>
    21     </head>
    22 
    23     <body>
    24         <div id="panel">
    25             <h5 class="head">什么是jQuery?</h5>
    26             <div class="content">
    27                 jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。
    28             </div>
    29         </div>
    30     </body>
    31 
    32 </html>
    点击展开
      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>鼠标滑过</title>
     7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
     8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
     9         <script type="text/javascript">
    10             $(function() {
    11                 $(".head").mouseover(function() {
    12                     $(this).next().show();
    13                 }).mouseout(function() {
    14                     $(this).next().hide();
    15                 })
    16             })
    17         </script>
    18     </head>
    19 
    20     <body>
    21         <div id="panel">
    22             <h5 class="head">什么是jQuery?</h5>
    23             <div class="content">
    24                 jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。
    25             </div>
    26         </div>
    27     </body>
    28 
    29 </html>
    鼠标滑过

      3、next()返回后面那个紧邻的同辈元素;如:

    HTML 代码:
    <p>Hello</p><p>Hello Again</p><div><span>And Again</span></div>
    jQuery 代码:
    $("p").next();
    结果:返回的是每个段落的后面紧邻的同辈元素(第一个p后面的p,第二个p对象后面的div对象):
    <p>Hello Again</p><div><span>And Again</span></div>
    
    如果只有一个p:<p>Hello Again</p><div><span>And Again</span></div>
    则$("p").next();结果返回的只有<div><span>And Again</span></div>

      4、事件移除:

      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>事件移除</title>
     7         <style type="text/css">
     8             * {
     9                 margin: 0;
    10                 padding: 0;
    11             }
    12             
    13             body {
    14                 font-size: 13px;
    15                 line-height: 130%;
    16                 padding: 60px;
    17             }
    18             
    19             p {
    20                  200px;
    21                 background: #888;
    22                 color: white;
    23                 height: 16px;
    24             }
    25         </style>
    26         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
    27         <script type="text/javascript">
    28             $(function() {
    29                 $('#btn').bind("click", function() {
    30                     $('#test').append("<p>我的绑定函数1</p>");
    31                 });
    32                 $('#delAll').click(function() {
    33                     $('#btn').unbind("click");
    34                 });
    35             })
    36         </script>
    37     </head>
    38 
    39     <body>
    40         <button id="btn">点击我</button>
    41         <div id="test"></div>
    42         <button id="delAll">删除所有事件</button>
    43     </body>
    44 
    45 </html>
    事件移除

      5、事件合成:

      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>合成事件hover</title>
     7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
     8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
     9         <script type="text/javascript">
    10             $(function() {
    11                 $(".head").hover(function() {
    12                     $(this).next().show();
    13                 }, function() {
    14                     $(this).next().hide();
    15                 })
    16             })
    17         </script>
    18     </head>
    19 
    20     <body>
    21         <div id="panel">
    22             <h5 class="head">什么是jQuery?</h5>
    23             <div class="content">
    24                 jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。
    25             </div>
    26         </div>
    27     </body>
    28 
    29 </html>
    事件合成hover
      
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 
     4     <head>
     5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     6         <title>合成事件toggle</title>
     7         <link rel="stylesheet" type="text/css" href="../../../css/style.css" />
     8         <script src="../../../js/jquery-1.8.3.min.js" type="text/javascript"></script>
     9         <script type="text/javascript">
    10             $(function() {
    11                 $(".head").toggle(function() {
    12                     $(this).next().hide();
    13                 }, function() {
    14                     $(this).next().show();
    15                 })
    16             })
    17         </script>
    18     </head>
    19 
    20     <body>
    21         <div id="panel">
    22             <h5 class="head">什么是jQuery?</h5>
    23             <div class="content">
    24                 jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。
    25             </div>
    26         </div>
    27     </body>
    28 
    29 </html>
    事件合成toggle

       

     

     

  • 相关阅读:
    UUID工具类
    jax-rs 标准以及 结合 resteasy的使用
    Mina.Net实现的断线重连
    Mina.Net实现的UDP协议消息收发Demo
    MySql 比Replace Into更适合的用法,外加SqlServer的方式。
    MySql【Insert Select Not Exist】判断记录再添加值的方案
    MySql中存储过程中的@变量总是无法执行,提示Parameter '@XXX' must be defined
    Go语言使用Beego的ORM插入Mysql后,时区不一致的解决方案
    Go语言中Path包用法
    C#(WPF和WinForm)在普通类中调用到主线程的方法,SynchronizationContext的用法。
  • 原文地址:https://www.cnblogs.com/limuma/p/8457048.html
Copyright © 2020-2023  润新知