先理解下js.
Java、C++、C),处理这些语言编写的程序叫编译器(Compiler),相应地对于JavaScript这样的动态语言则叫解释器(Interpreter)。编译器是将源代码编译为另外一种代码(比如jvm虚拟机,会将java文件编译为class文件),而解释器是直接解析并将代码运行结果输出(会直接执行编写的程序代码)。当在网页中嵌入js代码时,浏览器会自动运行你所编写的js代码。迄今为止,js已经有了自己的一个内库,即我们熟知的JavaScript,它可以让我们更容易的操作dom节点(dom后篇另做说明)去解决你所遇到的问题。
再谈谈jquery.
jquery是一个内库,它精简了JavaScript原生库中已有的对象类型与方法。在jquery没有出现之前,我们一般都是采用getElementById在Dom文档中找到Dom元素,然后取值或设定值,采用innerHTML取其内容或设定其内容。在jquery出现之后,把所有一切都统一在jQuery对象中。使用jQuery就是使用jQuery对象。jQuery实质就是一个查询器。在查询器的基础还提供对查找到的元素进行操作的功能。
jquery源码.
(function( global, factory ) {
....
}(
...
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init( selector, context );
},
.....
)
该段是jquery开始的一段代码,截去了不必要的一环。
这段代码可以看出,在你引入jquery文件时,该立即执行函数会实例化
jQuery.fn = jQuery.prototype = {
.....
(jQuery.prototype 即声明了名为jQuery的原型方法,至于方法体内有多少属性,这里只列出init部分
//这里会遍历所有的匿名函数
init: function( selector, context, rootjQuery ) {...};
}
然后开始调试关于这段的代码
图1:
图2:
图3:
到关于match[2]的描述
else {
elem = document.getElementById( match[2] );
....(这段是为了浏览器兼容的处理)
return this;
}
自此。就完成了在使用$('#Id')命名时jquery所做的事情,它即是更丰富了对节点的操作,添加了更多方法以便于使用
未完持续...