WEB开发网
开发学院网页设计JavaScript Jquery源码分析---jQuery类数组的分析 阅读

Jquery源码分析---jQuery类数组的分析

 2010-09-14 13:36:40 来源:WEB开发网   
核心提示: 上面的setArray(elems)函数只是会改变当前jQuery对象的集合,它会清除这个对象集合中以前的元素,Jquery源码分析---jQuery类数组的分析(3),但是有的时候我们想保存原来的集合中元素,同时也能就新传入的元素进行jquery对象的操作,无参数,代表全部的Dom元素g

上面的setArray(elems)函数只是会改变当前jQuery对象的集合,它会清除这个对象集合中以前的元素。但是有的时候我们想保存原来的集合中元素,同时也能就新传入的元素进行jquery对象的操作。它提供了pushStack函数来新建一个jQuery对象同时保存原来对象的引用。这样就可能在需要时用到自己所要的对象:

  pushStack : function(elems) {// 采用jQuery构建新对象,同时引用老对象。
    var ret = jQuery(elems);// 构建新的jquery对象
    ret.prevObject = this;// 保存老的对象的引用
    return ret;
 },

返回的是新构建成的对象,有着jQuery对象的全部功能,同时还可以通过prevObject来访问原来的老对象。

4.2 类数组的操作

构建了类数组,那么还得提供一些方法来操作这个集合,对于集合的操作无非就是定位元素,查找元素,复制(slice)和删除的操作(splice)等。jQuery还提供each,map的扩展。

这些方法只和集合相关,与集合的元素的无关。jQuery提供了众多的和其中元素(DOM元素)相关的方法。

4.2.1元素定位或取数

Get和index的方法是集合操作中最基本的方法。基本每一种集合的操作都会提供。jquery提供了两个类似的取元素的方法,get(index)和eq(index)元素。

其不同之处在于get取得是集合中的元素,而eq则是返回该元素的Clone,不会修改数组。我们还可以直接通过[i]来直接取元素,用来代替get(i)。不过get()在没有参数时,则是获得全部元素。数组[i]的方式做不到。

// 取到本jquery对象的第几个Dom元素,无参数,代表全部的Dom元素
  get : function(num) {
    return num == undefined ? jQuery.makeArray(this) : this[num];
  },
// 获取第N个元素 。这个元素的位置是从0算起。
  eq : function(i) {
    return this.slice(i, +i + 1);
  },

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Jquery 源码 分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接