【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

一、JQuery中样式的操作

  1.给id=mover的div采用属性增加样式.one

$("#b1").click(function(){
             $("#mover").attr("class","one");
         });

  2.给span块使用addClass增加样式.one

$("#b2").click(function(){
             $("span").addClass("one");
         });

  3.给id=mover的div块使用removeClass移除.one样式

$("#b3").click(function(){
             $("#mover").removeClass("one");
         });

  4.id=mover的div块切换样式.one:切换样式是原有样式和添加新样式之间进行切换,并非是在添加两个新样式之后在两个新样式之间进行切换。

$("#b4").click(function(){
             $("#mover").toggleClass("one");
         });

  5.判断span元素是否有spanone样式

 $("#b5").click(function(){
         var result=$("span").first().hasClass("spanone");
         alert(result);
     });

  6.完整代码

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>ddd</title>
 5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 6         <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
 7     <style type="text/css">
 8            .one{
 9                 width: 200px;
10                 height: 140px;
11                 margin: 40px;
12                 background: red;
13                 border: #000 1px solid;
14                 float:left;
15                 font-size: 17px;
16                 font-family:Roman;
17             }
18         
19              div,span{
20                 width: 140px;
21                 height: 140px;
22                 margin: 20px;
23                 background: #9999CC;
24                 border: #000 1px solid;
25                 float:left;
26                 font-size: 17px;
27                 font-family:Roman;
28             }
29             
30             /* div.mini{
31                 width: 30px;
32                 height: 30px;
33                 background: #CC66FF;
34                 border: #000 1px solid;
35                 font-size: 12px;
36                 font-family:Roman;
37             } */
38      </style>
39      <!--引入jquery的js库-->
40     </head>
41     <body>
42          <input type="button" value="给id=mover的div采用属性增加样式.one"  id="b1"/>
43          <input type="button" value=" 给span块使用addClass增加样式.one"  id="b2"/>
44          <input type="button" value="给id=mover的div块使用removeClass移除.one样式"  id="b3"/>
45          <input type="button" value=" id=mover的div块切换样式.one"  id="b4"/>
46          <input type="button" value=" hasClass:判断span元素是否有spanone元素"  id="b5"/>
47         
48  
49          <h1>天气冷了</h1>
50          <h2>天气又冷了</h2>
51          
52        
53         
54         <br>
55         <div id="mover">
56                动画
57         </div>
58         <br>
59         <span class="spanone">    span
60         </span>
61         
62     </body>
63     <script type="text/javascript">
64      //<input type="button" value="给id=mover的div采用属性增加样式.one"  id="b1"/>
65          $("#b1").click(function(){
66              $("#mover").attr("class","one");
67          });
68      //<input type="button" value=" 给span块使用addClass增加样式.one"  id="b2"/>
69          $("#b2").click(function(){
70              $("span").addClass("one");
71          });
72      
73      //<input type="button" value="给id=mover的div块使用removeClass移除.one样式"  id="b3"/>
74          $("#b3").click(function(){
75              $("#mover").removeClass("one");
76          });
77      
78      //<input type="button" value=" id=mover的div块切换样式.one"  id="b4"/>
79          $("#b4").click(function(){
80              $("#mover").toggleClass("one");
81          });
82      
83      //<input type="button" value=" hasClass:判断span元素是否有spanone样式"  id="b5"/>
84      $("#b5").click(function(){
85          var result=$("span").first().hasClass("spanone");
86          alert(result);
87      });
88     </script>
89 </html>
CSS_CRUD.html

二、JQuery中的Ajax操作

  1.JQuery对Ajax操作进行了封装,第一层封装是$.ajax(),第二层封装是load(),$.get(),$.post(),第三层封装是$.getScript(),$.getJSON()。

  2.load()方法:载入远程HTML文件代码,并插入到DOM中。

    (1)调用形式:load(url,[data],[callback]);

    (2)参数说明:

        url:请求的网址

        data:浏览器请求的数据

        callback:回调函数,有三个参数:代表请求返回内容的data、代表请求状态的textStatus对象(其值可能是success/error/notmodify/timeout四种中的其中一种)以及XMLHttpRequest对象

    (3)使用细节:如果只想加载目标HTML中的其中一部分,则需要选择器进行筛选,使用方法:url空格selector;该方法若客户端有参数传递则使用POST方法请求,否则使用GET方式请求。

    (4)使用案例:

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3     <head>
 4         <title>ddd</title>
 5         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 6         <script language="JavaScript" src="../js/jquery-1.4.2.js">
 7         </script>
 8         <style type="text/css">
 9             div, span {
10                 width: 140px;
11                 height: 140px;
12                 margin: 20px;
13                 background: #9999CC;
14                 border: #000 1px solid;
15                 float: left;
16                 font-size: 17px;
17                 font-family: Roman;
18             }
19             
20             div.mini {
21                 width: 30px;
22                 height: 30px;
23                 background: #CC66FF;
24                 border: #000 1px solid;
25                 font-size: 12px;
26                 font-family: Roman;
27             }
28             
29             div.visible {
30                 display: none;
31             }
32         </style>
33         <!--引入jquery的js库-->
34     </head>
35     <body>
36         <form action="" name="form1" id="form1">
37             <input type="text" name="username" id="username" value="zhang">
38             <br>
39             <input type="text" name="psw" id="psw" value="99999">
40             <br>
41             <input type="button" id="b1" value="登陆">
42         </form>
43         <div id="one">
44         </div>
45     </body>
46      <script type="text/javascript">
47          $("#b1").click(function(){
48              var username=$("#username").val();
49              var psw=$("#psw").val();
50              $("#one").load("./load01.jsp","username="+username+"&psw="+psw,function(data,textStatus,xmlHttpRequest){
51                  alert(data);
52                  alert(textStatus);
53                  alert(xmlHttpRequest);
54              });
55          });
56      </script>
57 </html>
load01.html
1 <%@ page language="java" pageEncoding="UTF-8"%>
2 <%
3     System.out.println("有新的请求消息!");
4     String username=request.getParameter("username");
5     String psw=request.getParameter("psw");
6     System.out.println("用户名:"+username);
7     System.out.println("密码:"+psw);
8     out.println("你好,客户端!");
9 %>
load01.jsp

      两个文件在同一个目录下。

    运行结果:

    

    

  3.$.get()方法:这是一个简单的GET请求功能以取代复杂的$.ajax,请求成功的时候调用回调函数,如果请求失败的时候需要调用函数则使用$.ajax

    (1)格式:jQuery.get(url,[data],[callback],[type]),返回值是XMLHttpRequest

        参数说明:url:请求的URL地址

              data:请求的参数,可以使用json格式的数据

              callback:回调函数,格式见load()

              type:返回内容格式,可能是[xml/html/script/json/text/_default]中的其中一种。

    (2)回调函数格式:function(data,textStatus),也就是说,回调函数只有两个参数,和上面的load方法中的四种参数不同。

    (3)案例:

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>ddd</title>
 5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
 7     <style type="text/css">
 8              div,span{
 9                 width: 140px;
10                 height: 140px;
11                 margin: 20px;
12                 background: #9999CC;
13                 border: #000 1px solid;
14                 float:left;
15                 font-size: 17px;
16                 font-family:Roman;
17             }
18             
19             div.mini{
20                 width: 30px;
21                 height: 30px;
22                 background: #CC66FF;
23                 border: #000 1px solid;
24                 font-size: 12px;
25                 font-family:Roman;
26             }
27             
28             div.visible{
29                 display:none;
30             }
31      </style>
32      <!--引入jquery的js库-->
33     
34     </head>
35      
36     <body>
37         <form action="" name="form1" id="form1">
38             <input type="text" name="username" id="username" value="zhang"><br>
39             <input type="text" name="psw" id="psw" value="99999"><br>
40             <input type="button" id="b1" value="登陆">
41         </form>
42         
43         <div id="one">
44         </div>
45         
46     </body>
47     <script type="text/javascript">
48         $("#b1").click(function(){
49             var username=$("#username").val();
50             var password=$("#psw").val();
51             var xmlHttpRequest=$.get("./get.jsp","username="+username+"&password="+password+"",function(data,textStatus){
52                 alert(data);
53                 alert(textStatus);
54             });
55             alert(xmlHttpRequest);
56         });
57     </script>
58 </html>
get.html
 1 <%@ page language="java" pageEncoding="UTF-8"%>
 2 <%
 3     System.out.println("有新的请求消息!");
 4     String username=request.getParameter("username");
 5     String password=request.getParameter("password");
 6     System.out.println(request.getMethod());
 7     System.out.println("用户名:"+username);
 8     System.out.println("密码:"+password);
 9     out.println("你好,客户端!");
10 %>
get.jsp

两个文件在同一个目录中

    

    

  4$.post()方法:用法和$.get方法完全相同,但是使用的请求方式是POST。

  5.序列化元素

    (1)简介:JQuery为准备“发送到服务器的key/value数据”,提供了一个简化的方法:serialize(),该方法用于一个JQuery对象,能将DOM元素内容序列化为字符串,用于Ajax请求。

    (2)使用方法:selector.serialize()。

    (3)使用serialize()方法可以自动完成对参数的url编码。

    (4)案例:对之前的GET请求方式稍作修改

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>ddd</title>
 5     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
 7     <style type="text/css">
 8              div,span{
 9                 width: 140px;
10                 height: 140px;
11                 margin: 20px;
12                 background: #9999CC;
13                 border: #000 1px solid;
14                 float:left;
15                 font-size: 17px;
16                 font-family:Roman;
17             }
18             
19             div.mini{
20                 width: 30px;
21                 height: 30px;
22                 background: #CC66FF;
23                 border: #000 1px solid;
24                 font-size: 12px;
25                 font-family:Roman;
26             }
27             
28             div.visible{
29                 display:none;
30             }
31      </style>
32      <!--引入jquery的js库-->
33     
34     </head>
35      
36     <body>
37         <form action="" name="form1" id="form1">
38             <input type="text" name="username" id="username" value="zhang"><br>
39             <input type="text" name="psw" id="psw" value="99999"><br>
40             <input type="button" id="b1" value="登陆">
41         </form>
42         
43         <div id="one">
44         </div>
45         
46     </body>
47     <script type="text/javascript">
48         $("#b1").click(function(){
49             /* var username=$("#username").val();
50             var password=$("#psw").val(); */
51             var xmlHttpRequest=$.post("./get.jsp",$("#form1").serialize(),function(data,textStatus){
52                 alert(data);
53                 alert(textStatus);
54             });
55             alert(xmlHttpRequest);
56         });
57     </script>
58 </html>
Serialize_Demo.html
 1 <%@ page language="java" pageEncoding="UTF-8"%>
 2 <%
 3     System.out.println("有新的请求消息!");
 4     String username=request.getParameter("username");
 5     String password=request.getParameter("psw");
 6     System.out.println(request.getMethod());
 7     System.out.println("用户名:"+username);
 8     System.out.println("密码:"+password);
 9     out.println("你好,客户端!");
10 %>
get.jsp

    注意,这里已经换成了POST的请求方式。

    封装好的数据发送到服务器端的时候服务器使用表单中给的name属性获取表单中的值。

三、JQuery中的XML操作

  1.JQuery中可以使用$.get()或者$.post()方法来加载xml。

  2.JQuery解析XML和解析DOM一样同样可以使用find(),children(),等函数来解析和使用each()方法来进行遍历

  3.JQuery小练习:二级菜单联动

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>test01.html</title>
 5     <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
 6     <script language="JavaScript" src="../js/jquery-1.4.2.js"></script>
 7   </head>
 8   <body>
 9      <select id="province" name="province">
10        <option value="">请选择....</option>
11      </select>
12      <select id="city" name="city">
13          <option value="">请选择.....</option>
14         <option value="铁岭">铁岭</option>
15      </select>
16   </body> 
17     <script type="text/javascript">
18         $().ready(function(){
19             //页面载入的时候加载第一级菜单
20             $.get("cities.xml",function(xml){
21                 $xml=$(xml);
22                 $children=$xml.find("province");
23                 $children.each(function(index,domEle){
24                     $city=$("<option></option>");
25                     $city.val($(domEle).attr("name"));
26                     $city.text($(domEle).attr("name"));
27                     $("#province").append($city);
28                 });
29             });
30         });
31         $("#province").change(function(){
32             $("#city option:gt(0)").remove();
33             $val=$("#province").val();
34             $.get("cities.xml",function(xml){
35                 $xml=$(xml);
36                 $children=$xml.find("province");
37                 $children.each(function(index,domEle){
38                     $province_name=$(domEle).attr("name");
39                     if($val==$province_name){
40                         //接下来遍历该省份中的city
41                         $(domEle).children().each(function(index,cityDom){
42                             var $city_name=$(cityDom).text();
43                             var $city=$("<option></option>");
44                             $city.val($city_name);
45                             $city.text($city_name);
46                             $("#city").append($city);
47                         });
48                         return;
49                     }
50                 });
51             });
52         });
53     </script>
54 </html>
city.html
 1 <?xml version="1.0" encoding="GB2312"?>
 2 <china>
 3     <province name="吉林省">
 4         <city>长春</city>
 5         <city>吉林市</city>
 6         <city>四平</city>
 7         <city>松原</city>
 8         <city>通化</city>
 9     </province>
10     <province name="辽宁省">
11         <city>沈阳</city>
12         <city>大连</city>
13         <city>鞍山</city>
14         <city>抚顺</city>
15         <city>铁岭</city>
16     </province>
17     <province name="山东省">
18         <city>济南</city>
19         <city>青岛</city>
20         <city>威海</city>
21         <city>烟台</city>
22         <city>潍坊</city>
23     </province>
24 </china>    
cities.xml

  运行结果:

    

  4.小知识点:使用remove方法删除select下的指定option选项。  

posted @ 2015-09-03 07:50  狂盗一枝梅  阅读(323)  评论(0编辑  收藏  举报