zoukankan      html  css  js  c++  java
  • jQuery:一些小练习

    练习1:点击所有的 p 节点,能够弹出对应的文本内容。

    1         <script type="text/javascript" src="jquery-1.7.2.js"></script>
    2         <script type="text/javascript">
    3             $(function(){
    4                 $("p").click(function(){
    5                     alert($(this).text());
    6                 });
    7             });
    8         </script>

      注意:1、jQuery 对象可以进行隐式迭代: 为选取的所有的 p 节点都添加了 onclick 响应函数。jQuery 对象本身就是一个 DOM 对象的数组。

         2、在响应函数中,this 是一个 DOM 对象,若想使用 jQUery 对象的方法,需要把其包装为 jQuery 对象:使用 $() 把 this 包起来。

         3、text() 方法是一个读写的方法:不加任何参数,读取文本值;加参数为属性节点添加文本值(文本节点),和 text() 类似的方法: attr()、val()。

    练习2:使第一个 table 隔行变色。

      $("table:first tr:even").css("background", "#ffaabb");

    练习3:点击 button ,弹出被选中的个数。

     1         <script type="text/javascript" src="jquery-1.7.2.js"></script>
     2         <script type="text/javascript">
     3             $(function(){
     4                 $("button").click(function(){
     5                     alert($(":checkbox:checked").length);
     6                 });
     7             });
     8         </script>
     9 ...
    10 
    11   <body>
    12       <input type="checkbox" name="test" />
    13         <input type="checkbox" name="test" />
    14         <input type="checkbox" name="test" />
    15         <input type="checkbox" name="test" />
    16         <input type="checkbox" name="test" />
    17         <input type="checkbox" name="test" />
    18         <button>您选中的个数</button>
    19   </body>

    练习4:分类添加内容

    结果图:

      、 

    代码:

     1 <title>Insert title here</title>
     2     <script type="text/javascript" src="jquery-1.7.2.js"></script>
     3     <script type="text/javascript">
     4         $(function(){
     5             //需求2:使包括新增的 li 都能响应 onclick 事件: 弹出 li 的文本值.   
     6             function showContent(li){
     7                 alert($(li).text());
     8             }
     9             $("li").click(function(){
    10                 showContent(this)
    11             });
    12             
    13             //需求1:点击 submit 按钮时,检查是否选择 type,若没有选择给出提示: "请选择类型"; 
    14             $(":submit").click(function(){
    15                 var $type = $(":radio[name='type']:checked");
    16                 if($type.length == 0 ){
    17                     alert("请选择类型");
    18                     return false;
    19                 }
    20                 var typeVal = $type.val();
    21                 //检查文本框中是否有输入(可以去除前后空格),若没有输入,则给出提示:"请输入内容";
    22                 var $text = $(":text[name='name']");
    23                 var textVal = $.trim($text.val());
    24                 $text.val(textVal);
    25                 if(textVal == ""){
    26                     alert("请输入内容");
    27                     return false;
    28                 }
    29                 //alert("^^" + textVal + "__");
    30                 //若检查都通过, 则在相应的 ul 节点中添加对应的 li 节点 
    31                 $("<li>" + textVal + "</li>").appendTo($("#" + typeVal))
    32                                              .click(function(){
    33                                                  showContent(this)
    34                                              });
    35                 $text.val("");
    36                 return false;
    37             });
    38         })
    39     </script>
    40 </head>
    41 <body>
    42 
    43     <p>你喜欢哪个城市?</p>
    44     
    45         <ul id="city">
    46             <li id="bj">北京</li>
    47             <li>上海</li>
    48             <li>东京</li>
    49             <li>首尔</li>
    50         </ul>
    51         
    52         <br><br>
    53         <p>你喜欢哪款单机游戏?</p>
    54         <ul id="game">
    55             <li id="rl">红警</li>
    56             <li>实况</li>
    57             <li>极品飞车</li>
    58             <li>魔兽</li>
    59         </ul>        
    60         <br><br>        
    61         <form action="dom-7.html" name="myform">
    62             
    63             <input type="radio" name="type" value="city">城市
    64             <input type="radio" name="type" value="game">游戏
    65         
    66             name: <input type="text" name="name"/>
    67         
    68             <input type="submit" value="Submit" id="submit"/>
    69             
    70         </form>
    71 </body>

      注意:1、$.trim(str):可以去除 str 的前后空格。

         2、同 JS 的响应函数一样,jQuery 对象的响应函数若返回 false,可以取消指定元素的默认行为,比如:submit、a 等。

         3、jQuery 对象的方法的连缀:调用一个方法的返回值还是调用的对象,于是可以在调用方法的后面依然调用先前那个对象的其他方法。

     练习5:员工信息的增加和删除

    结果图:

    代码:

     1 <script type="text/javascript" src="jquery-1.7.2.js"></script>
     2 <script type="text/javascript">
     3  
     4  $(function(){
     5      
     6      //1. jQuery 对象调用 jQuery 提供的方法的返回值如果是一个对象的话
     7      //那么这个对象一定是一个 jQuery 对象
     8      //2. find() 方法: 查找子节点, 返回值为子节点对应的 jQuery 对象
     9      function removeTr(aNoe){
    10          //获取 a 节点所在的的 tr 节点. 返回时是 jQuery 对象
    11          var $trNode = $(aNoe).parent().parent();
    12          var textContent = $trNode.find("td:first").text();
    13          textContent = $.trim(textContent);
    14          
    15          var flag = confirm("确定要删除" + textContent + "的信息吗?");
    16          if(flag){
    17              $trNode.remove();
    18          }
    19          
    20          return false;
    21      }
    22      
    23      $("#employeetable a").click(function(){
    24          return removeTr(this);
    25      });
    26      //给 submit 添加 onclick 响应事件,添加信息到  #employeetable tbody 中。 
    27      $("#addEmpButton").click(function(){
    28          $("<tr></tr>").append("<td>" + $("#name").val() + "</td>")
    29                        .append("<td>" + $("#email").val() + "</td>")
    30                        .append("<td>" + $("#salary").val() + "</td>")
    31                        .append("<td><a href='deleteEmp?id=xxx'>Delete</a></td>")
    32                        .appendTo("#employeetable tbody")
    33                        .find("a")
    34                            .click(function(){
    35                                return removeTr(this)
    36                            });
    37          //添加完信息后,将 text 里的值置空。 
    38          $("#name").val("");
    39          $("#email").val("");
    40          $("#salary").val("");
    41      });     
    42  })
    43      
    44 
    45 </script>
    46 </head>
    47 <body>
    48 
    49     <center>
    50         <br> <br> 添加新员工 <br> <br> name: <input type="text"
    51             name="name" id="name" />&nbsp;&nbsp; email: <input type="text"
    52             name="email" id="email" />&nbsp;&nbsp; salary: <input type="text"
    53             name="salary" id="salary" /> <br> <br>
    54         <button id="addEmpButton" value="abc">Submit</button>
    55         <br> <br>
    56         <hr>
    57         <br> <br>
    58         <table id="employeetable" border="1" cellpadding="5" cellspacing=0>
    59             <tbody>
    60                 <tr>
    61                     <th>Name</th>
    62                     <th>Email</th>
    63                     <th>Salary</th>
    64                     <th>&nbsp;</th>
    65                 </tr>
    66                 <tr>
    67                     <td>Tom</td>
    68                     <td>tom@tom.com</td>
    69                     <td>5000</td>
    70                     <td><a href="deleteEmp?id=001">Delete</a></td>
    71                 </tr>
    72                 <tr>
    73                     <td>
    74                         Jerry
    75                     </td>
    76                     <td>jerry@sohu.com</td>
    77                     <td>8000</td>
    78                     <td><a href="deleteEmp?id=002">Delete</a></td>
    79                 </tr>
    80                 <tr>
    81                     <td>Bob</td>
    82                     <td>bob@tom.com</td>
    83                     <td>10000</td>
    84                     <td><a href="deleteEmp?id=003">Delete</a></td>
    85                 </tr>
    86             </tbody>
    87         </table>
    88     </center>
    89 
    90 </body>

      注意:1、jQuery 对象 调用 jQuery 提供的方法的返回值,如果是一个对象的话,那么这个对象一定是一个 jQuery 对象。

         2、找第一个 td 子节点的文本值,find() 方法:查找子节点,返回值为子节点对应的 jQuery 对象。

     练习六:品牌展示

    结果图:

        、   

    代码:

     1         <script type="text/javascript" src="scripts/jquery-1.3.1.js"></script>
     2         <script type="text/javascript">
     3             /*
     4             var $category = $("li:gt(5):lt(10)");
     5             此时的 lt 是在 li:gt(5) 基础上进行的. 
     6             */
     7             $(function(){
     8                 //1. 需要选择从 "富士" - "爱国者" 的所有 li: $category
     9                 //var $category = $("li:gt(5):lt(6)"); lt是在gt 的基础上 选择,所以是6,不是10. 
    10                 //或者这么写
    11                 var $category = $("li:gt(5):not(:last)");
    12                 
    13                 //2. 把他们隐藏. 
    14                 $category.hide();
    15                 
    16                 //3. 为 .showmore 添加一个 onclick 响应函数(取消默认行为)
    17                 $(".showmore").click(function(){
    18                     //4. 若 $category 是隐藏的. 使用 is
    19                     if($category.is(":hidden")){
    20                         //4.1 $category 显示
    21                         $category.show();
    22                         
    23                         //4.2 使 "佳能", "尼康", "奥林巴斯" 变为高亮显示: 
    24                         //添加 .promoted 的 class
    25                         $("li:contains('佳能'), li:contains('尼康'), li:contains('奥林巴斯')").addClass("promoted");
    26                         
    27                         //4.3 .showmore > a > span 的文字变为: 显示精简品牌
    28                         $(".showmore>a>span").text("显示精简品牌"); 
    29                         
    30                         //4.4 .showmore > a > span 的 background 变为: 
    31                         //url(img/up.gif) no-repeat 0 0
    32                         $(".showmore>a>span").css("background", "url(img/up.gif) no-repeat 0 0");
    33                         
    34                         return false;
    35                     }else{
    36                         //5. 若 $category 是显示的. 
    37                         $category.hide();
    38                         $("li").removeClass("promoted");
    39                         $(".showmore>a>span").text("显示全部品牌");
    40                         $(".showmore>a>span").css("background", "url(img/down.gif) no-repeat 0 0");
    41                         return false;
    42                     }
    43                 });        
    44             })
    45         </script>
    46     </head>
    47     <body>
    48         <div class="SubCategoryBox">
    49             <ul>
    50                 <li ><a href="#">佳能</a><i>(30440) </i></li>
    51                 <li ><a href="#">索尼</a><i>(27220) </i></li>
    52                 <li ><a href="#">三星</a><i>(20808) </i></li>
    53                 <li ><a href="#">尼康</a><i>(17821) </i></li>
    54                 <li ><a href="#">松下</a><i>(12289) </i></li>
    55                 <li ><a href="#">卡西欧</a><i>(8242) </i></li>
    56                 <li ><a href="#">富士</a><i>(14894) </i></li>
    57                 <li ><a href="#">柯达</a><i>(9520) </i></li>
    58                 <li ><a href="#">宾得</a><i>(2195) </i></li>
    59                 <li ><a href="#">理光</a><i>(4114) </i></li>
    60                 <li ><a href="#">奥林巴斯</a><i>(12205) </i></li>
    61                 <li ><a href="#">明基</a><i>(1466) </i></li>
    62                 <li ><a href="#">爱国者</a><i>(3091) </i></li>
    63                 <li ><a href="#">其它品牌相机</a><i>(7275) </i></li>
    64             </ul>
    65             <div class="showmore">
    66                 <a href="more.html"><span>显示全部品牌</span></a>
    67             </div>
    68         </div>
    69     </body>

    over。

  • 相关阅读:
    我要AFO啦好伤感啊
    noip2012~2015刷题小记录
    【20161114模拟赛】
    第5模块闯关CSS练习题
    HTML练习题
    Mysql常用命令行大全
    mysql破解密码安装与基本管理
    python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
    Python/ selectors模块及队列
    python3 中 Event.wait 多线程等待
  • 原文地址:https://www.cnblogs.com/daoxiaobai/p/6349904.html
Copyright © 2011-2022 走看看