zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    leetcode122
    leetcode121
    leetcode773
    leetcode803
    leetcode658
    leetcode723
    leetcode134
    leetcode340
    leetcode721
    leetcode362
  • 原文地址:https://www.cnblogs.com/zdf159/p/7276823.html
Copyright © 2011-2022 走看看