jQuery和AJAX

一、定义

1.jQuery是一个JavaScript类库,安装时不需要添加额外的环境变量和配置文件。

2.配置:在相应的页面导入

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

二、设计思想

1.将HTML DOM对象进行封装,成为jQuery对象,并提供丰富的API来操作这些对象,从而实现动态更新HTML的目标。

2.使用jQuery之后,JavaScript操作不在是HTML元素对应的DOM对象,而是包装DOM对象的jQuery对象。

3.JavaScript通过调用jQuery对象的方法来改变它所包装的DOM对象的属性,从而动态更新更新HTML对象。

 

三、获取jQuery对象

1.使用jQuery()函数,该函数也可以简写为$()

1)获取文档中所有div标签对应的jQuery对象:$("div")

2)获取文档中id为id的jQuery对象:$("#id")

2.调用jQuery对象的某个方法返回该jQuery对象(绝大部分)

1)var obj = $("#id");  obj.text("你是谁");

四、jQuery核心函数

示例

<!DOCTYPE html>
<html>
  <head>
    <title>jQuery.html</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
  </head>
  
  <body>
      <div id = "div1"></div>
      <div id = "div2"></div>
  </body>
  <script type="text/javascript">
  jQuery(ready);//页面加载完毕后调用ready方法
  //该语句是$(document).ready();的缩写。
  function ready(){
      alert("页面加载完毕");
  }
  //获取所有div标签对应jQuery对象,并改变其内容
  $("div").append("DIV标签内容");
  //使用HTML字符串创建一个jQuery对象,并添加至body内
  var str = "<input type='button' value='点击' onclick='change()'/>";
  $(str).appendTo(document.body);
  
  function change(){
      //获取id为div1的jQuery,并改变其内容
      $("#div1").text("DIV1改变");
      $("#div2").text("DIV2改变");
  }
  //将DOM对象包装为jQuery对象,并改变其css样式
  var obj = $(document.getElementById("div1"));
  obj.css("background-color","#00ff00");
  
  
  </script>
</html>

 五、jQuery选择符

1.分类$()函数

1)#id:根据指定ID匹配一个元素,示例<div id=""></div>,ID

2)element:根据指定元素名称匹配所有元素,示例<div>1</div> <div>2</div> <div>3</div>,标签名

3).class:根据指定的类型匹配元素,示例<div class="">1</div>  <span class="">1</span>,class

4)*:匹配所有的元素,示例<div id=""></div> <div>1</div> <div class="">1</div>  <span class="">1</span>,所有的

5)selector1,selector2,selectorN:将每一个选择符匹配到的元素合并后一起返回,示例<div id=""></div> <div>1</div> <div class="">1</div>  <span class="s">1</span>,多个一起应用$("div,span.s")

6)parent>child:在指定的父元素下匹配所有的子元素,示例

<!DOCTYPE html>
<html>
  <head>
    <title>jQuery选择符示例</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
  </head>
  
  <body>
      <form>
          <lable>Name:</lable>
          <input name = "name"/>
          <fieldset>
              <lable>Newsletter:</lable>
              <input name = "newsletter"/>
          </fieldset>
      </form>
      <input name = "none"/>
  </body>
  <script type="text/javascript">
      $("form>input")//匹配表单中所有子级input元素
      //返回结果为
      [<input name = "name"/>]
  </script>
</html>

六、jQuery操作DOM对象

1)html():使用html()方法读取或者设置元素的innerHTML。就是相当于javascript里头的innerHTML。

2)text():使用text()方法读取或者设置元素的innerText。就是相当于javascript里头的innerText。

3)attr():使用attr()方法读取或者设置元素的属性,对于jQuery没有封装的属性(所有浏览器没有差异的属性)用attr进行操作。

 4)removeAttr:使用removeAttr删除属性。删除的属性在源代码中看不到,这是和清空属性的区别。attr(‘name’,’’)

5)append:用来在元素的末尾追加元素(最后一个子节点)。增加元素末尾(儿子)

6)prepend:在元素的开始添加元素(第一个子节点)。增加元素开始(儿子)

7)appendTo:子元素.appendTo(父元素);//主动巴结!到最后一个

8) prependTo:子元素.prependTo(父元素);//主动巴结到第一个。

9)css():改元素CSS样式

10)show()/hide():显示/隐藏元素

11)click:单击事件时的处理函数

12)val:获取元素值

 

 

<!DOCTYPE html>
<html>
  <head>
    <title>jQueryDOM示例</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
  </head>
  
  <body>
      <div id = "name"></div>
      <div id = "poss"></div>
      <br/>
      <form>
          用户名:
          <input type="text" id="username" size="20"/>&nbsp;&nbsp;&nbsp;
          <span id="userinfo"></span><br/><br/>&nbsp;&nbsp;码:
          <input type="text" id="possword" size="21"/>&nbsp;&nbsp;&nbsp;
          <span id="possinfo"><font color="red"></font></span><br/><br/>
          <input type="button" id="ok" value="确定"/>
      </form>
      
      
  </body>
  <script type="text/javascript">
  jQuery(ready);//页面加载完毕后调用ready方法
  //该语句是$(document).ready();的缩写。
  function ready(){
      alert("页面加载完毕");
      $("#ok").click(login);//为确认按钮指定点击事件
  }
  
  function login(){
      ///获取表单的用户名和密码
      var username = $("#username").val();
      var possword = $("#possword").val();
      
      if(username!="admin"){
          //填充错误信息,并制空用户名
          $("#userinfo").html("<font color = 'red'>用户名不正确</font>");
          $("#username").val("");
      }else{
          $("#userinfo").html("");
      }
      if(possword!="admin"){
          //填充错误信息,并制空密码
          $("#possinfo>font").text("密码不正确");
          $("#possword").val("");
      }else{
          $("#possinfo>font").text("");
      }
      if(username=="admin"&&possword=="admin"){
          alert("登入成功");
          $("#name").
            append("班级:小班").css({color:"0000ff"});
          $("#poss").
              text("类型:精英").attr({style:"color:blue"});
          $("form").hide();
      }
      
  }
  
  
  
  </script>
</html>

 

 七、jQuery插件

1.日期插件

1)名称:DarePicker

2)文件

jquery-ui-1.8.5.custom.min.js

jquery.ui.datepicker-zh-CN.js

jquery-ui-1.8.5.custom.css

3)HTML代码

    <h2 class="demoHeaders">Datepicker</h2>
      <input type="text" name = "datepicker" id="datepicker"/>

 

 $(function(){
      $('datepicker').datepicker();
  })

 

2.树形视图

1)名称:Treeview

2)文件

jquery.treeview.js

jquery.treeview.css

3)HTML代码

 

<h2 class="demoHeaders">Treeview</h2>
          <ul id ="treeview" class="filetree">
              <li>
                  <span class="folder">Folder 1</span>
                  <ul>
                      <li><span class="file">Item 1.1</span></li>
                  </ul>
              </li>
              
              <li>
                  <span class="folder">Folder 2</span>
                  <ul>
                      <li><span class="folder">Item 2.1</span></li>
                      <ul>
                          <li><span class="file">Item 2.1.1</span></li>
                          <li><span class="file">Item 2.1.2</span></li>
                      </ul>
                  </ul>
              </li>
              
              
          
          </ul>

 

3.链接预览

1)名称:linklook

2)文件:linklook.js

3)HTML和JSP

 

<h2 class="demoHeaders">Link Previvew</h2>
      <p><a href="http://www.baidu.com">百度</a></p>
      <p><a href="http://www.google.com">谷歌</a></p>

 

      $(function(){
          $('p').linklook();
     })
     

 

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'link.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
   <script type="text/javascript">
  <%
         String url = request.getParameter("url");
           String img = "./images/";
           
           if(url.equals("http://www.baidu.com")){
               img += "baidu.jpg";
           }else if(url.equals("http://www.google.com")){
               img += "google.jpg";
           }else if(url.equals("http://www.oracle.com")){
               img += "oracle.jpg";
           }
     %>
  
  
  </script>
  <body>
    This is my JSP page. <br>
    <jsp:forward page='<%= img %>'>
  </body>
 
</html>

 

4.文字限制器

1)名称:Textlimit

2)文件:Textlimit.js

 

<!--       文字限制器 -->
    <h2 class="demoHeaders">Text limit</h2>
    <form>
        <textarea name = "textlimit1" cols="40" rows="2" id="textlimit1"></textarea>
        &nbsp;还有<span class="counter1"></span>字符可以输入
        
        <input type="text" name = "textlimit2" value ="" id="textlimit2" />
        &nbsp;还有<span class="counter2"></span>字符可以输入
    </form>

 

 

 //文字
     $(function(){
          $("#textlimit1").textlimit("span.counter1",36);
          $("#textlimit2").textlimit("span.counter2",16);
    });
      

 

5.表单验证 

1)名称:Form Validate

2)文件:jquery.validate.js

 

<style type="text/css">
           #form{
               width: 500px;
           }
           #form label.error{
               margin-left: 10px;color: red;
               font-style: italic;
               font-size: 13px;
           }
           #form input.submit{
               margin-left: 80px;
           }
           
           
    </style>

 

<!--       表单验证 -->
      <h2 >Form Validate</h2>
      <form class="cmxform" id="form" method="get" action="">
        <p>
            <label for="cname">Username*:</label>
            <input id="cname" name="name" class="required" size="25"/>
        </p>    
            
        <p>
            <label for="cemail">E-Mail*:</label>
            <input id="cemail" name="email" class="required email" size="25"/>
        </p>
        
        <p>
            <label for="curl">URL*:</label>
            <input id="curl" name="url" class="url" size="25"/>
        </p>
        
        <p>
            <label for="ccomment">Comment*:</label>
            <textarea id="ccomment" name="comment" class="required" col="25"></textarea>
        </p>
        
        <p>
            <input class="submit" type="submit" value="提交" />
        </p>

    </form>

 

//表单验证
      $(function(){
          $.validator.setDefaulte({
              submitHandler:function(){
                  alert("submitted");
              }
          });
          
          $("#form").validate({
              rules:{
                  name:{required:true,mianlength:2},
                  email:{required:true,email:true},
                  url:{url:true},
                  comment:{required:true}
              },
              messages:{
                  name:{
                      required:"请输入姓名",
                      mianlength:"姓名中至少包含两个字符"
                  },
                  email:{
                      required:"请输入电子邮箱地址",
                      email:"非法的电子邮箱地址"
                  },
                  url:"请输入合法的URL",
                  comment:"请输入备注信息"
              }
          
          });
          
     });

 

 

 

 

八、ajax特点

1.允许在同一个页面中多次发送请求,并动态加载服务器数据至页面

2.有效的避免页面的频繁刷新

3.兼容性问题

4.load方法

语法:load(url,data,callback)

url后面可以加选择器,之间用空格,任何一个html节点,都可以使用load方法,直接插入html节点中

九、ajax组成

1.CSS

2.JS

3.XML

十、ajax方法

<!DOCTYPE html>
<html>
  <head>
    <title>AJAX.html</title>
    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
  </head>
      <script type="text/javascript">
          $.ajax({
              type:"post",//post  get
              async:true,//boolean类型 默认为true 异步请求
              url:"http://www.baidu.com",//string类型 url 链接请求 
              data:"name=zdf",//object或Sting类型
              dateType:"text",//服务器返回的数据类型 string xml json等
              success:state
              //cache:boolean类型 是否从浏览器缓存中加载请求信息,默认true
              //contentType:string类型 指定发送到服务器信息的MINE类型,默认为"application/x-www-form-urlencoded"
          })
          function state(data){
              //回调函数,数据在data中
          }
      </script>
  <body>
    This is my HTML page. <br>
  </body>
</html>

 

posted @ 2017-08-03 10:55  非凡起航  阅读(207)  评论(0编辑  收藏  举报