0 Comments

成熟--选择器

发布于:2013-05-30  |   作者:广州网站建设  |   已聚集:人围观
成熟--选择器

jQuery返回的是jQuery对象,jQuery对象是一个类数组的对象,本质上它就是一个对象,但是它拥有数组的长度和下标,却没有继承数组的方法。

很显然,上面几节的讲解都是建立在一种空理论基础上的,目的是希望读者能够理解jQuery框架的核心构建过程。下面,我们就尝试为jQuery()函数传递一个参数,并让它返回一个jQuery对象。

jQuery()函数包含两个参数selector和 context,其中selector表示选择器,而context表示选择的内容范围,它表示一个DOM元素。为了简化操作,我们假设选择器的类型仅限定为标签选择器。实现的代码如下所示。

广州网站建设,网站建设,广州网页设计,广州网站设计
  1. <div></div> 
  2. <div></div> 
  3. <div></div> 
  4. <script language="javascript" type="text/javascript"> 
  5. var $ =jQuery = function(selector, context ){       //定义类  
  6.     return new jQuery.fn.init(selector, context );  //返回选择器的实例  
  7. }  
  8. jQueryjQuery.fn = jQuery.prototype = {   //jQuery类的原型对象  
  9.     init : function(selector, context){//定义选择器构造器  
  10.         selectorselector = selector || document; // 设置默认值为document  
  11.         contextcontext = context || document;  //设置默认值为document  
  12.         if ( selector.nodeType ) {   //如果选择符为节点对象  
  13.             this[0] = selector;     //把参数节点传递给实例对象的数组  
  14.             this.length = 1;            //并设置实例对象的length属性,定义包含的元素个数  
  15.             this.context = selector;   //设置实例的属性,返
  16. 回选择范围  
  17.             return this;                //返回当前实例  
  18.         }  
  19.         if ( typeof selector === "string" ) {   //如果选择符是字符串  
  20.             var e = context.getElementsByTagName (selector);     //获取指定名称的元素  
  21.             for(var i = 0;i<e.length;i++){ //遍历元素集合,并把所有元素填入到当前实例数组中  
  22.                 this[i] = e[i];  
  23.             }  
  24.             this.length = e.length; //设置实例的length属性,即定义包含的元素个数  
  25.             this.context = context;//设置实例的属性,返回选择范围  
  26.             return this;            //返回当前实例  
  27.         } else{  
  28.             this.length = 0;        //否则,设置实例的length属性值为0  
  29.             this.context = context;    //设置实例的属性,返回选择范围  
  30.             return this;            //返回当前实例  
  31.         }  
  32.     },  
  33.     jquery: "1.3.2",  
  34.     size: function() {  
  35.         return this.length;  
  36.     }  
  37. }  
  38. jQueryjQuery.fn.init.prototype = jQuery.fn;  
  39. alert( $("div").size() );    //返回3  
  40. </script> 
在上面示例中,$("div")基本拥有了jQuery框架中$("div")语法的功能,使用它可以选取页面中指定范围的div元素。同时,调用size()方法可以返回jQuery对象集合的长度。

广州网站建设,网站建设,广州网页设计,广州网站设计
标签:
飞机