`

jQuery知识篇二

阅读更多

1.jQuery对象是一个类数组对象,含有连续的整型属性,length属性和大量的jQuery方法。

  jQuery对象由构造函数jQuery()创建,$()是jQuery()的别名
 
  构造jQuery对象的7种方式:
  1.1 jQuery( selector [, context] ):
  如果传入一个字符串参数,jQuery 会检查这个字符串是选择器表达式还是 HTML 代码。如果是选择器表达式,则遍历文档,查找与之匹配的 DOM 元素,并创建一个包含了这些 DOM 元素引用的 jQuery 对象;如果没有元素与之匹配,则创建一个空 jQuery 对象,其中不包含任何元素,其属性 length 等于 0。默认情况下,对匹配元素的查找将从根元素 document 对象开始,即查找范围是整个文
档树,不过也可以传入第二个参数 context 来限定查找范围,如下:
  $('div.foo').click(function() {
      $('span', this).addClass('bar'); // 限定查找范围
  });
  又或
  $("a","div #ajia").css(....)  //在id为ajia的div中寻找a标签
 
  1.2 jQuery( html [, ownerDocument] ) 或者 jQuery( html, props )
  如果传入的字符串参数看起来像一段 HTML 代码(例如,字符串中含有 ),jQuery 则尝试用这段 HTML 代码创建新的 DOM 元素,并创建一个包含了这些 DOM 元素引用的 jQuery 对象。如果 HTML 代码是一个单独标签,那么第二个参数还可以是 props,props 是一个包含了属性、事件的普通对象。例如,在下面的例子中,创建一个 div 元素,并设置类样式为“ test”、设置文本内容为“ Click me!”、绑定一个 click 事件,然后插入 body 节点的末尾,当点击该div 元素时,还会切换类样式 test:
   $("", {
     "class": "test",  //class是js的保留字,需要用引号
     text: "Click me!",
     click: function(){
        $(this).toggleClass("test");
     }
   }).appendTo("body");
 
   1.3 jQuery( element )、jQuery( elementArray )
   如果传入一个 DOM 元素或 DOM元素数组,则把 DOM 元素封装到 jQuery 对象中并返回。这个功能常见于事件监听函数,即把关键字 this 引用的 DOM 元素封装为 jQuery 对象,然后在该 jQuery 对象上调用 jQuery 方法。
   例如,在下面的例子中,先调用 $(this) 把被点击的 div 元素封装为 jQuery 对象,然后调用方法 slideUp() 以滑动动画隐藏该 div 元素:
   $('div.foo').click(function() {
      $(this).slideUp();
   });
 
   1.4 jQuery( object )
   如果传入一个普通 JavaScript 对象,则把该对象封装到 jQuery 对象中并返回。这个功能可以方便地在普通 JavaScript 对象上实现自定义事件的绑定和触发
   例如,执行下面的代码会在对象 foo 上绑定一个自定义事件 custom,然后手动触发这个事件,执行绑
定的 custom 事件监听函数,如下所示:
   // 定义一个普通 JavaScript 对象
   var foo = {foo:'bar', hello:'world'};
   // 封装成 jQuery 对象
   var $foo = $(foo);
   // 绑定一个事件
   $foo.on('custom', function (){    //使用.bind 或者 .live都可以,添加的事件名称是可自定义的
      console.log('custom event was called');
   });
   // 触发这个事件
   $foo.trigger('custom');    // 在控制台打印 "custom event was called"
 
 
jQuery代码优化:
1. 尽量避免重布局和重绘的情况
2.对于dom元素的操作,尽量一次性操作
 
3.使用$.detach()函数将元素从dom文档中剥离出来,再进行操作 
  $("#ajia").detach().appendTo($("#theMe"));   //原有的元素操作 用detach处理
  var me = $("--ajia").detach().appendTo($("#ajia"));  //新创建的元素   也使用detach来处理 
 
4.对jQuery包装集的循环,如果集的元素不多,直接使用$.each(),如果多的,可使用js中数组循环函数:forEach(function(obj,ind){....})   //其中obj是dom元素,ind是下标
   var pArr = $.makeArray($("p"))  //所以先通过$.makeArray来将jQuery对象集转 换成 js数组      
   pArr.forEach(function(obj,ind){
    console.log( $(obj).html() );
   })

5.给选择器添加上下文
  $("a","#ajia") 的速度快于 $("#ajia a"),前者的意思就是在#ajia的范围内寻找a标签
 
 
jQuery的module模式
模块方式包括3个组件:1.命名空间 2.立即执行的函数 3.函数的返回对象
var 命名空间 = ( function($){....} )(jQuery);
 
插件使用规则
1.在jQuery名称空间中只为插件声明单个名称,也就是单一访问入口
2.为插件中的事件也定义命名空间,可以避免错误解除插件外的同一元素的绑定事件,例如click.ajia或ajia.click
3.插件中使用单个$.data来存取数据,如果是多项数据,使用对象字面量来包含后,再存入单个$.data
4.接受一个options参数以控制插件的行为,该参数会通过$.extend来合并插件默认参数,由于options参数是在插件实例化是传入,所以options参数只会作用于具体的插件实例,如果需要在插件外修改插件默认的参数,就需要使用5的做法
(function($){
     $.fn.cjDemo = function(options){
          var default_options = {color:'red','font-size':12};
          var settings = $.extend(default_options ,options); //合并
          return this.each(function(){......});
     }
})(jQuery);
5.为插件的默认参数设置提供公开的访问,通过在插件内使用$.fn的方式来原型话默认参数,
(function($){
     $.fn.cjDemo = function(options){
          $.fn.cjDemo.default_options = {color:'red','font-size':12};
          var settings = $.extend({},$.fn.cjDemo.default_options,options); //注意写法
          return this.each(function(){......});
     }
})(jQuery);
插件外访问修改默认参数的方式:$.fn.cjDemo.default_options.color = "blue";
 
jQuery的延迟对象$.Deferred 能够将 回调行数 单独出来处理,大大减低了代码耦合性,该对象是根据其的promise对象的状态resolve 或 reject 来判断成功或失败,从而调用done 或者 fail对应的回调函数来处理,如下代码:
$.when( demo() )  //$.when 捕捉 demo()返回的promise对象的状态,而决定执行下面哪函数
 .done(success)   //成功
 .fail(failed);   //失败
//可以使用.then(success,failed)来代替
 
function demo(){
   return $.Deferred(
      function(){
         $("#ajia").show(1000,this.resolve);  //在回调函数处返回promise的resolve(成功)状态,reject则是失败
      }
   ).promise();  //返回promise对象
}
 
$.ajax本身就是一个Deferred 对象,它的success、error、complete对应着Deferred.done、Deferred.fail、Deferred.always
function demo(){
/*return $.ajax({
'type':'post',
'dataType':'json',
                        'url':'a.php'
 
});*/
 
//return $.getJSON('aj.php');
 
        //return $("#haha").load('ag.php');//该ajax形式,无论是否load成功失败,都是resolve
 
 
}
     $.when( demo() )
.then(success,failed)
.always(function(){alert('always');});//无论成功失败都执行
 
 
 
 
  
分享到:
评论

相关推荐

    JQuery相关知识汇总

    本篇将对jQuery中的核心概念、常用函数和技术进行深入讲解。 ### 1. jQuery选择器 jQuery提供了丰富的选择器,使得我们能够更方便地选取DOM元素。例如: - `$("#id")`:通过ID选择元素。 - `$(".class")`:通过类名...

    jquery所有知识

    本篇文章将全面概述jQuery的核心概念、主要功能及其应用。 ### 一、jQuery简介 jQuery由John Resig于2006年创建,其目标是“Write Less, Do More”。它的出现使得JavaScript代码变得更加简洁、易读,减少了跨浏览器...

    jQuery入门篇.

    **jQuery入门篇** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作和Ajax交互。这个入门篇将帮助初学者快速理解jQuery的核心概念和功能,以便在网页开发中更高效地操作DOM...

    jQuery选择器基础知识

    本篇文章将深入探讨jQuery选择器的基础知识,包括其类型、用法和实际应用。 ### 1. 基本选择器 基本选择器包括ID选择器(#id)、类选择器(.class)和元素选择器(element)。例如: - `$("#myID")` 选择ID为...

    jQuery入门篇-必读教程

    **jQuery入门篇** jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。自2006年发布以来,jQuery已经成为了前端开发的标准工具之一,尤其对于初学者来说,它...

    Jquery演示 jquerydemo jquery常用

    本篇文章将围绕"jQuery演示"这一主题,深入探讨jQuery的核心知识点,并通过实际案例来帮助你更好地理解和运用jQuery。 ### 一、jQuery的选择器 jQuery选择器类似于CSS,用于选取HTML元素。例如,`$("#id")` 选取ID...

    jQuery知识点.docx

    在本篇笔记中,我们将深入探讨 jQuery 的一些核心知识点。 首先,我们关注初始化过程。`$(document).ready()` 与 `window.onload` 都用于在页面加载完成后执行代码,但它们有区别。`$(document).ready()` 在 DOM ...

    《构建跨平台APP-jQuery.Mobile移动应用实战》 PDF

    第二篇是jQuery Mobile基础篇,介绍了jQuery Mobile中对话框、工具栏、按钮、表单、布局和插件的使用;第三篇是跨平台APP实战篇,介绍了6个使用jQuery Mobile开发的实际APP;第四篇是发布和推广应用篇,介绍了在开发...

    最全前端面试题-5(jquery篇-上百篇题集整理1个月)

    以上只是部分jQuery面试题中的知识点,完整的面试题集涵盖了jQuery的很多核心概念和技术细节,包括事件处理、选择器、动画、插件扩展等方面,是全面了解和掌握jQuery的好资料。通过深入学习这些内容,开发者可以提升...

    jQuery-1.8.3(&2.1.4).min.js&jquery;.fileupload&jquery;.iframe-transport

    本篇将深入探讨jQuery的核心库以及两个重要的插件——jQuery File Upload和jQuery Iframe Transport。 首先,jQuery的核心库jQuery-1.8.3.min.js和jQuery-2.1.4.min.js是其发展过程中的两个稳定版本。1.8.3属于1.x...

    jQuery基础篇

    jQuery基础知识

    jquery攻略

    #### 二、为什么选择jQuery? 1. **易用性**:jQuery拥有简单直观的API,使得即使是初学者也能快速上手。 2. **强大的功能**:无论是DOM操作、事件处理还是Ajax请求,jQuery都提供了丰富的功能支持。 3. **跨浏览器...

    JQuery电子书

    通过阅读《jQuery电子书》和使用《jQuery使用帮助手册》,你可以系统地学习并熟练掌握jQuery的各个知识点,无论你是前端新手还是经验丰富的开发者,都能从中受益匪浅。同时,记得结合实践进行练习,理论与实践相结合...

    jquery移动端商城网站模板

    本篇文章将深入探讨基于jQuery的移动端商城网站模板设计与实现的关键知识点。 1. **响应式设计**:jQuery移动端商城网站模板的核心在于响应式布局,确保网站在不同设备上(如手机、平板、电脑)都能自适应展示。这...

    锋利的jquery(第二版)源码

    1. **基础篇**:首先,书中会介绍如何引入jQuery库,以及jQuery选择器的基本用法,如ID选择器、类选择器、属性选择器等,帮助开发者高效地选取DOM元素。 2. **DOM操作**:jQuery提供了一套强大的DOM操作API,包括...

    JQuery API 参考文献

    这篇文档将深入探讨jQuery 1.5.1和1.6.1版本的API,同时也会提及与Adobe AIR集成的相关知识。 ### jQuery基础 1. **选择器**: jQuery 的核心在于强大的选择器,如 `$("#id")` 用于选取ID为`id`的元素,`$(".class...

    JavaScript之提升篇-Jquery经典入门教程

    本教程将深入探讨JavaScript的基础与提升,特别是结合jQuery的经典入门知识。 一、JavaScript基础 1. 变量与数据类型:JavaScript支持var、let和const三种声明变量的方式,数据类型包括基本类型(如字符串、数字、...

    jquery17_chm

    这篇内容主要聚焦于jQuery17版本,这是一个广泛使用的JavaScript库,极大地简化了HTML文档遍历、事件处理、动画和Ajax交互。jQuery以其简洁的API和强大的功能,深受前端开发者喜爱。"jQuery17_chm"很可能是该版本的...

    jquery插件--表格分页

    本篇文章将深入探讨jQuery插件在实现表格分页中的应用及其相关知识点。 一、jQuery和表格分页基础 1. jQuery简介:jQuery是由John Resig创建的一个轻量级的JavaScript库,它的目标是使JavaScript编程变得更加简单...

    【Jquery经典特效2】jQuery个人简介特效页面代码

    本篇文章将深入探讨如何利用jQuery实现一个具有特色的个人简介特效页面。 一、jQuery库的引入 在HTML文档中,我们首先需要引入jQuery库。这通常通过在`<head>`标签内添加一个`<script>`标签来完成,其src属性指向...

Global site tag (gtag.js) - Google Analytics