WEB开发网
开发学院网页设计JavaScript jQuery.API源码深入剖析以及应用实现 - 核心函数... 阅读

jQuery.API源码深入剖析以及应用实现 - 核心函数篇

 2010-09-14 13:38:00 来源:WEB开发网   
核心提示: 这么长的一串代码 实际上最后访问的是一个ret为变量的数组,而数组中的元素变为以DOM元素的对象,jQuery.API源码深入剖析以及应用实现 - 核心函数篇(5),而它的innerHTML正好就是刚才的HTML字符串,3)形如 $("#result") 【jQuery

这么长的一串代码 实际上最后访问的是一个ret为变量的数组,而数组中的元素变为以DOM元素的对象,而它的innerHTML正好就是刚才的HTML字符串。

3)形如 $("#result") 【jQuery(expression,[context])】ID字符串的实现,通过init方法中的以下代码:

//处理形如$("#result")
else{
  //match[3]得到ID的值如:result
  varelem=document.getElementById(match[3]);
  if(elem&&elem.id!=match[3])
    returnjQuery().find(selector);
  //调用jQuery(elements)方式
  varret=jQuery(elem||[]);
  //默认上下文DOM为window.document
  ret.context=document;
  ret.selector=selector;
  returnret;
}

根据match[3]可以得到DOM对象elem,并且调用2)介绍的jQuery(elements),最后返回一个ret为变量的jquery对象。

4)形如 $("div .container") 【jQuery(expression,[context])】表达式字符串的实现,通过init方法中的以下代码:

//处理形如$("div.container")的表达式字符串
else
 returnjQuery(context).find(selector);

关键看到这样的一句代码,jQuery().find( selector ); 继续查看find都做了些什么:

find:function(selector){
  //当表达式不包含“,”符号时候
  if(this.length===1&&!/,/.test(selector)){
    varret=this.pushStack([],"find",selector);
    ret.length=0;
    jQuery.find(selector,this[0],ret);
    returnret;
  }
  //当表达式包含“,”符号时候
  else{
    varelems=jQuery.map(this,function(elem){
      returnjQuery.find(selector,elem);
    });
    returnthis.pushStack(/[^+>][^+>]/.test(selector)?
      jQuery.unique(elems):
      elems,"find",selector);
  }
}

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

Tags:jQuery API 源码

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