jQuery.API源码深入剖析以及应用实现 - 核心函数篇
2010-09-14 13:38:00 来源:WEB开发网这么长的一串代码 实际上最后访问的是一个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);
}
}
更多精彩
赞助商链接