WEB开发网
开发学院网页设计JavaScript Jquery源码分析---构建Jquery的Dom元素 阅读

Jquery源码分析---构建Jquery的Dom元素

 2010-09-14 13:36:44 来源:WEB开发网   
核心提示: 这段代码就是jQuery对象的间接引用节点的方法,它提供了父节点、子节点,Jquery源码分析---构建Jquery的Dom元素(4),兄弟节点三个方法的操作,对于父节点,在上面的代码,我们也看到了几个静态间接引用节点的函数调用://从一个元素出发,可以可得到其当前的父亲节点,还可以得到所

这段代码就是jQuery对象的间接引用节点的方法。它提供了父节点、子节点,兄弟节点三个方法的操作。对于父节点,可以可得到其当前的父亲节点,还可以得到所有父亲节点(包括祖先节点)。对于子节点,就是所有的直接的子节点(不包括其它的后代节点)。对于兄弟节点,有大(前面)兄弟节点(们)和小(后面)兄弟节点(们)之分。

接下就是把这八个节点注册到jQuery.fn(即jQuery对象)中的同名方法中。因为jQuery对象的Dom元素是集合,那么就得对集合中每个Dom元素都要进行单个元素相同的操作(上面8种的间接引用节点的Fn)。在组合中,有可能会有重复的dom元素,也还有可能用户会对这些间接引用节点进行其它的自定义的过滤。这里支持的过滤方式下一小节要分析的selector的过滤。最后构建一个新的jQuery对象。

其调用的方式如:$(‘p’). parents()。这个例子是所有p标签的所有父辈(包含祖先)节点的所组合而成的集合。这个集合有重复的元素可能性是很大。所以要jQuery.unique(ret)来进行过滤。

再举一个例子:$(‘p’). parents(“div”)。这个就是取所有所有父辈(包含祖先)节点中的Tagname为div的元素集合。这个就采用了CSS的过滤。最后还是要进行unique处理。

在上面的代码,我们也看到了几个静态间接引用节点的函数调用:

//从一个元素出发,取得一个方向上的所有元素,如parentNode、nextSibling、//previousSibling、lastChild,firstChild这样的元素的属性作为方向(dir).
dir : function(elem, dir) {
  var matched = [], cur = elem[dir];
  while (cur && cur != document) {
    if (cur.nodeType == 1)
      matched.push(cur);
    cur = cur[dir];
  }
  return matched;
},

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

Tags:Jquery 源码 分析

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