jQuery.API源码深入剖析以及应用实现 - 核心函数篇
2010-09-14 13:38:00 来源:WEB开发网3. 现在分析 表达式,id,HTML字符串,DOM元素等等各自的实现:
1)形如 $(document.getElementById("result")) 【jQuery(elements)】DOM元素的实现,通过init方法中的以下代码:
//Handle$(DOMElement)
if(selector.nodeType){
this[0]=selector;
this.length=1;
this.context=selector;
returnthis;
}
selector.nodeType判断当selector为元素节点时,将length置为1,并且赋值于context,实际上context作为init的第二个参数,它意味着它的上下文节点就是selector该点,返回它的$(...)对象。
2)形如 $("<div>hello,world</div>") 【jQuery(html,[ownerDocument])】HTML字符串的实现,通过init方法中的以下代码:
//判断selector为字符串
if(typeofselector==="string"){
//quickExpr=/^[^<]*(<(.|s)+>)[^>]*$|^#([w-]+)$/
//利用检查正则表达式HTML字符串还是元素ID字符串
varmatch=quickExpr.exec(selector);
if(match&&(match[1]||!context)){
//处理HTML字符串
if(match[1])
selector=jQuery.clean([match[1]],context);
//处理形如$("#id")
else{
//……
}
}
//处理形如$("div.container")的表达式字符串
else
//……
}
//处理形如$(function),$(document).ready(function(){})的表示
elseif(jQuery.isFunction(selector)){
}
//……
更多精彩
赞助商链接