jQuery功能简述



jQuery: 它是一个开源的Ajax框架,也是学javaEE必须要掌握的框架。
因为它是目前企业中用到得最多的一个框架.



-- jQuery历史:
  2006年8月:第一个版本.
  2015年4月28日:V1.11.3.

-- 它的官方网站: http://www.jquery.com
   V1.xxx.xx : 支持所有浏览器.
   V2.xxx.xx : 不支持msie6,7,8. msie9+: html5.

   V1.xxx.xx: 
   1.9.0之前版本:下载一个js文件.
   1.9.0之后版本: 下载两个js文件.
   下载哪些文件:
    jquery-1.11.3.js     (源码)
    jquery-1.11.3.min.js (源码压缩后的)

    jquery-migrate-1.2.1.js (源码) 迁移插件.
    jquery-migrate-1.2.1.min.js (源码压缩后的).

    学习时用:
    jquery-1.11.3.js 
    jquery-migrate-1.2.1.js

    实际项目开发:
    jquery-1.11.3.min.js
    jquery-migrate-1.2.1.min.js

-- 这个项目的开发宗旨:
   write less, do more: 写更少,做更多.
   
-- 学习Ajax框架的好处:
   1. 它可以帮我们解决js跨浏览器兼容问题.
   2. 简化dom编程.
   3. 简化异步请求.
   4. 它提供了一批好用工具的方法.

-- 市面上用到得Ajax框架:
   1. 重量级(界面组件):extjs、dojo.
   2. 轻量级(没有界面组件): jquery、prototype.
      jquery-easyui



一、jQuery入门:
    第一步:在html页面上引入jquery两个js文件.
    <script type="text/javascript" src="jquery-1.11.3.js"></script>
    <script type="text/javascript" src="jquery-migrate-1.2.1.js"></script>

    第二步:监听文档是不是加载完 window.onload.
       $(window).ready(function(){
	    alert("第一种方式");
       });

       $(this).ready(function(){
	    alert("第二种方式");
       });

       $(document).ready(function(){
	    alert("第三种方式");
       });
		
       $(function(){
	    alert("第四种方式");
       });

    第三步:查询dom元素.
       $  === jQuery

       window.jQuery = window.$ = jQuery;

    第四步:对dom元素操作.

二、核心部分:
    1. jQuery(selector, [context]) : 核心函数.
        核心函数调用返回得是jQuery对象,这个jQuery对象就封装了查询到得dom元素.
	对jQuery对象做操作,实际上就是对它查询到得dom元素做操作.

       -- selector : 选择器(是jQuery规定的查询字符串).
       -- context: 上下文(也是就是查询范围)。默认为document.(当前html文档).

   2. $("selector").length: 获取jQuery对象中查询到得dom元素的个数. 
   3. $("selector").size(): 获取jQuery对象中查询到得dom元素的个数. 

   4. $("selector").each() : 迭代jQuery对象中查询到得dom元素。
      $("selector").each(function(i, item){
         // i: 索引号
	 // this === item : dom元素
      });

   5. $("selector").selector: 获取你调用jQuery核心函数传进去的第一个参数.
   6. $("selector").context: 获取你调用jQuery核心函数传进去的第二个参数.

   7. $("selector").get(i): 从jQuery对象中根据索引号取指定dom元素.
      $("selector").get(): 从jQuery对象中取指定dom元素,返回一个dom元素数组(Array).

   8. 从jQuery对象中取dom元素:

      a. 第一种方式:
        $("selector").get(i).

      b. 第二种方式:
         $("selector").get()[i].

      c. 第三种方式:
         $("selector")[i].

      d. 第四种方式:
         $("selector").toArray()[i]. 

   9. 把dom元素转换成jQuery对象.
      var obj = $(dom元素);

三、选择器(查询字符串)
    1. $("#html元素的id属性值"): $("#div1").

    2. $("html元素的标签名"): $("div") $("input").

    3. $(".html元素的class属性值"): $(".myClass1").

    4. 选择器组合:
       $("#html元素的id属性值,html元素的标签名,.html元素的class属性值");

    5. $("selector1 selector2") : 查询父元素中所有的子元素(不是父子关系的查询).

    6. $("selector1 > selector2") : 查询父元素中的直接子元素(父子关系的查询).
       
    7. $("selector1 + selector2") : 查询相邻的后面的一个元素.

    8. $("selector1 ~ selector2") : 查询相邻的后面的所有的指定元素.

    9. $("selector:first") : 查询后取第一个.

    10. $("selector:last") : 查询后取最后一个.

    11. $("selector:eq(i)") : 查询后根据索引号取指定的.

    12. $("selector:not(selector)"): 查询后不包含指定的索引号对应的dom元素.

    13. 属性选择器:
        a. $("html元素的标签名[属性名]"). $("div[id]")
	b. $("html元素的标签名[属性名=属性值]"). $("div[id='div1']")
	c. $("html元素的标签名[属性名^=属性值]"). $("div[id^='di']")
	d. $("html元素的标签名[属性名$=属性值]"). $("div[id$='v1']")
	e. $("html元素的标签名[属性名*=属性值]"). $("div[id*='i']")
	f. $("html元素的标签名[属性名!=属性值]"). $("div[id!='div1']")

	属性选择器组合:
	$(html元素的标签名[属性名][属性名=属性值][属性名^=属性值]...")

    14. $("selector:checked"): 把选中的checkbox、radio查询出来.
         $("input[type='checkbox']:checked");
	 $("input[type='radio']:checked");

    15. $("selector:selected"): 把选中的option查询出来.
         $("select > option:selected");

四、操作属性:
    1. 添加属性值:
       $("selector").attr("属性名", "属性值") 
                    .attr("属性名", "属性值");
       $("selector").attr({"属性名":"属性值","属性名": "属性值"});

       $("selector").prop("属性名", "属性值")
                    .prop("属性名", "属性值");
       $("selector").prop({"属性名":"属性值","属性名": "属性值"});

    2. 获取属性值:
       $("selector").attr("属性名");
       $("selector").prop("属性名");

    3. 删除属性:
       $("selector").removeAttr("属性名");
    

五、操作class1. 添加class:
       $("selector").addClass("class名称1 class名称2");

    2. 删除class:
       $("selector").removeClass("class名称1 class名称2"); // 删除指定class
       $("selector").removeClass(); // 删除全部class

    3. 获取class:
       $("selector").attr("class");

    4. class开关:
       $("selector").toggleClass("class名称1 class名称2");//对指定class做开关操作.


六、操作文本: 
    1. 添加文本
       $("selector").html("html格式文本|普通文本");
       $("selector").text("普通文本");

    2. 获取文本
       $("selector").html();
       $("selector").text();

    3. 删除文本
       $("selector").html("");
       $("selector").text("");
       

七、操作value1. 设置value
       $("selector").val("值");
       $("selector").attr("value","值");
       $("selector").prop("value","值");
       $("selector").get(0).value = "值";
       $("selector").get()[0].value = "值";
       $("selector")[0].value = "值";
       $("selector").toArray()[0].value = "值";

    2. 获取value
       $("selector").val();
       $("selector").attr("value");
       $("selector").prop("value");
       $("selector").get(0).value;
       $("selector").get()[0].value;
       $("selector")[0].value;
       $("selector").toArray()[0].value;

    3. 删除value
       $("selector").val("");
       $("selector").attr("value","");
       $("selector").prop("value","");
       $("selector").get(0).value = "";
       $("selector").get()[0].value = "";
       $("selector")[0].value = "";
       $("selector").toArray()[0].value = "";

八、操作css(style属性):
    1. 设置css
       $("selector").css("样式名", "样式值");
       $("selector").css({"样式名": "样式值", "样式名": "样式值"});

    2. 获取css值
       $("selector").css("样式名");

    3. 删除css
        $("selector").css("样式名", ""); // 删除指定的
	$("selector").removeAttr("style"); // 删除全部

    4. 设置宽度、获取宽度.
       $("selector").width("值");
       $("selector").width();

    5. 设置高度、获取高度.
       $("selector").height("值");
       $("selector").height();

九、文档处理:
    
    /** ############### 往目标元素里面添加子元素  ################# **/
    1. $("selector").append("html格式的字符串"); // 往目标元素里面最后面添加子元素.
    2. $("html格式的字符串").appendTo("selector"); // 把子元素追加到目标元素里面最后面.

    3. $("selector").prepend("html格式的字符串"); // 往目标元素里面最前面添加子元素.
    4. $("html格式的字符串").prependTo("selector"); // 把子元素追加到目标元素里面最前面.


    /** ############### 往目标元素外面添加相邻的元素 ################# **/
    5. $("selector").after("html格式的字符串"); // 往目标元素外面最后面添加相邻元素.
    6. $("html格式的字符串").insertAfter("selector"); // 把元素追加到目标元素外面最后面.

    7. $("selector").before("html格式的字符串"); // 往目标元素外面最前面添加相邻元素.
    8. $("html格式的字符串").insertBefore("selector"); // 把元素追加到目标元素外面最前面.
    
    9. $("selector").empty(); // 清空所有的子元素.

    10. $("selector").remove(); // 删除所有的元素.
       
 
十、筛选(查询后再一次过滤):
    -- 实际是把选择器改成了方法.
    1. $("selector").eq(i) : 查询后再根据索引取.
    2. $("selector").first() : 取第一个
    3. $("selector").last() : 取最后一个
    4. $("selector").filter("seletor"): 查询后把需要的过滤出来.
    5. $("selector").map() : 把查询到的jQuery对象转化成另外一个jQuery对象.
                             该jQuery对象中封装的元素不再是dom元素,而是map方法
			      中回调函数的返回值.
        var obj1 = obj.map(function(i, item){  // obj1封装得是map方法回调函数的返回值
		//alert(i + "==" + item);
		return item.name + "=" + item.value;
	});
	alert(obj1.get().join("&"));
    6. $("selector").not("selecotr") : 查询后不包含哪一个.
    7. $("selector").children() : 查询所有直接的子元素.
    8. $("selector").find("selector"): 查询指定的子元素.
           $("ul").find("div").css("color", "red");

十一、动画效果:
    1. 显示与隐藏:
       a. $("selector").show(1000, function(){}); // 显示
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       b. $("selector").hide(1000, function(){}); // 隐藏
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       c. $("selector").toggle(1000, function(){}); // 显示隐藏开关
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.


    2. 滑上与滑下:
       a. $("selector").slideDown(1000, function(){}); // 显示(滑下)
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       b. $("selector").slideUp(1000, function(){}); // 隐藏(滑上)
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       c. $("selector").slideToggle(1000, function(){}); // 显示隐藏(滑下滑上)开关
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.
       

    3. 淡入与淡出:
       a. $("selector").fadeOut(1000, function(){}); // 显示(淡入)
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       b. $("selector").fadeIn(1000, function(){}); // 隐藏(淡出)
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.

       c. $("selector").fadeToggle(1000, function(){}); // 显示隐藏(淡入淡出)开关
           -- 第一个参数:执行动画毫秒数.
	   -- 第二个参数:动画完成后需要回调的函数.
    
   4. 淡入到指定的透明度:
      $("selector").fadeTo(1000, [0-1], function(){});
       -- 第一个参数:执行动画毫秒数.
       -- 第二个参数:透明度(0-1).
       -- 第三个参数:动画完成后需要回调的函数.
   
十二、事件绑定:
   1.on()方法绑定事件.
      $("selector").on("click mouseover", {name:'admin'}, function(event){
		// event.type : 获取事件类型.
		// event.data : 获取事件数据.
      });
      -- 第一个参数:事件名(事件名把前面的on去掉).
      -- 第二个参数:数据.
      -- 第三个参数:事件处理函数.

      $("selector").on({
	  "click" : function(){
	  },
          "mouseover" : function(){
	  }
      });
      
    2.bind()方法绑定事件.
      $("selector").bind("click mouseover", {name:'admin'}, function(event){
		// event.type : 获取事件类型.
		// event.data : 获取事件数据.
      });
      -- 第一个参数:事件名(事件名把前面的on去掉).
      -- 第二个参数:数据.
      -- 第三个参数:事件处理函数.

      $("selector").bind({
	  "click" : function(){
	  },
          "mouseover" : function(){
	  }
      });

    3. 主动触发事件.
       a. $("selector").trigger("click");

       b. $("selector").triggerHandler("click");

    4. hover集成了onmouseover与onmouseout.
       $("selector").hover(
	  function(){},  // onmouseover
	  function(){}   // onmouseout
       );

    5. 按点击次数绑定事件:
       $("selector").toggle(
	  function(){ // 点击第一次
	  }, 
	  function(){ // 点击第二次
	  }, 
	  function(){ // 点击第三次
	  }
        );
    6. 特殊方法绑定相应的事件:
       onclick  --> click();
       onblur   --> blur();
       onchange --> change();
       onxxx    --> xxx();
     

十三、事件对象:
      -- event.type : 获取事件类型.
      -- event.data : 获取事件数据.

十四、工具方法:
      1. $.each() : 数组迭代方法
         $.each([], function(i, item){
	     // i : 索引号
	     // this === item : 数组元素

	 });
      2. $.extend({},{}) : 两个json对象进行合并,把后面的json对象合并到前面的json对象中.
      
      3. $.grep() : 数组过滤返回一个新数组.
         var newArr = $.grep([], function(item, i){
	     // i : 索引号
	     // item : 数组元素
             return true: 保留  false: 不保留
	 });

      4. $.map(): 把一个数组转化成一个新的数组.
         var newArr = $.map([], function(item, i){
	     // i : 索引号
	     // item : 数组元素
	     return "值"; // 返回值存入新的数组
	 });

      5. $.merge([],[]): 两个数组合并,返回一个新数组.
      
      6. $.parseJSON(): 把json字符串解析成json对象.
         var str = '{"name" : "李刚", "age" : 50}';
	 -- key : 必须用双引号
	 -- value: 如果是字符串也必须用双引号.

      7. $.trim() : 去掉字符串前后的空格.

      8. $.param() : 把json对象转化成get请求的字符串key=value&key=value

      9 . $("#form的id属性值").serialize() : 把表单中的input元素序列成get请求的字符串.
          <input type="text" name="userId" value="admin"/>
	  <input type="text" name="pwd" value="111111"/>
	  name属性值=value属性值&name属性值=value属性值
	  userId=admin&pwd=11111
         

十五、异步请求(ajax)1. $.ajax(url, settings) : 核心方法.
      -- 第一个参数:请求URL.
      -- 第二个参数:settings发送异步请求需要设置的参数.{}json对象.

      $.ajax({
	   url : "请求URL",
	   type : "get|post|put|delete", // 请求方式
	   data : "key=value&key=value|{key:value,key:value}|[{key:value,key:value},..]", // 请求参数
           dataType : "text|html|xml|json|script|jsonp", // 指定服务器响应回来的数据类型.
           async : true|false, // 异步|同步
	   success : function(data){ // 请求成功
	      // data : 响应数据
	   },
	   error : function(){ // 请求失败
	     
	   }
      });

    2. $.get() : 只发送get请求  
       $.get(url, data, function(data, status){
          // status(状态码): success 、error
	  // data : 响应数据
       }, dataType);
       -- 第一个参数:请求URL
       -- 第二个参数:请求参数
       -- 第三个参数:回调函数
       -- 第四个参数:服务器端响应回来的数据类型

    3. $.post() : 只发送post请求
       $.post(url, data, function(data, status){
          // status(状态码): success 、error
	  // data : 响应数据
       }, dataType);
       -- 第一个参数:请求URL
       -- 第二个参数:请求参数
       -- 第三个参数:回调函数
       -- 第四个参数:服务器端响应回来的数据类型

    4. $.getJSON(): 发送get请求响应数据为json.
       $.getJSON(url, data, function(data, status){
          // status(状态码): success 、error
	  // data : 响应数据
       });
       -- 第一个参数:请求URL
       -- 第二个参数:请求参数
       -- 第三个参数:回调函数

   5.  $.getScript() : 发送get请求响应数据为script.
        $.getScript(url, function(data, status){
          // status(状态码): success 、error
	  // data : 响应数据
       });
       -- 第一个参数:请求URL
       -- 第二个参数:回调函数

   6. $("selector").load()发送get请求响应数据为html.(加载公共的页面)
      $("selector").load(url, function(data, status){
          // status(状态码): success 、error
	  // data : 响应数据
       });
       -- 第一个参数:请求URL
       -- 第二个参数:回调函数

       	// 发送异步请 求开始
	$("#loading").ajaxStart(function(){
		$(this).show();
	});
	// 发送异步请 求结束
	$("#loading").ajaxStop(function(){
		$(this).hide();
	});

异步请求示例:

1. 省份城市联级下拉列表(异步请求,响应数据为xml) $.ajax()
2. 省份城市联级下拉列表(异步请求,响应数据为json) $.ajax()
3. $.get()发送请求

4. $.post()发送请求
5. $.getScript()
6. $.getJSON()
7. $("selector").load()
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值