有段时间不更新了,今天总结一下jQuery 的一些方法和属性
一、jq 方法和属性的整体结构(91行 —— 281行)
jQuery.fn = jQuery.prototype = {
jquery: 版本
constructor: 修正指向问题
init(): 初始化和参数管理
selector: 存储选择字符串
length: this对象的长度
toArray(): 转数组
get(): 转原生集合
pushStack(): JQ对象的入栈
each(): 遍历集合
ready(): DOM加载的接口
slice(): 集合的截取
first(): 集合的第一项
last(): 集合的最后一项
eq():集合的指定
map(): 返回新集合
end(): 返回集合前一个状态
push(): (内使用)
sort(): (内部使用)
splice():(内部使用)
}
二、jq方法和属性的详解
1.属性:
jquery: core_version, // 存储jq版
constructor: jQuery, // 将构造函数指向 jQuery
2. init 方法
初始或jq,匹配jq选择器
init: function( selector, context, rootjQuery ) {
// 处理代码
}
jq选择器的书写方式一共有一下几种:
标签类名选择:$("#div") $(".div") $("div") $(".div #p")
创建元素:$("<li>") $("<li>111</li>")
对象this,doc选择:$(this) $(document)
函数:$(function(){})
类型选择:$([]) $({})
(1)$(""), $(null), $(undefined), $(false)
情况
我们在看jq源码时,首先在init方法看到两个声明的变量,其次我们看到了 在 106行到108行有如下代码:
if ( !selector ) {
return this;
}
这主要选择的是$(""), $(null), $(undefined), $(false)
这几种类型的。
重点内容 这里返回的是 this,jq中已将this做了处理,什么样的处理呢,这样的处理:
$("div") 如
this = {
0:"div",
length:1,
context: // 可有可无
}
怎么做到的呢,前面我们已经提到了:是下面这段代码实现的
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
},
(2)$("<div>") $("<div></div>") $("#div")
接下来我们可以看到第二个判断 111 —— 176行
if ( typeof selector === "string" ) {
}