jQuery源码解析之构造函数的方法

来源:互联网 发布:caffe经典模型实战pdf 编辑:程序博客网 时间:2024/05/01 06:43
jQuery共有七种方法
jQuery(selector[,content])
如果传入一个字符串参数,jQuery会检查这个字符串是选择器表达式还是HTML代码.如果是选择器表达式,则会遍历文档,查找与之匹配的DOM元素,并且创建一个包含了这些DOM元素引用的jQuery对象,如果没有与之匹配的元素则会创建一个空的jQuery对象,其中不包含任何一个元素,其length为0
默认情况下,对匹配元素的查找将从根元素document对象开始,即查找范围是整个文档树,不过也可以传入第二个参数contentx来限定查找范围,看代码
$('div.foo').click(function() {
$('span', this).addClass('bar'); // 限定查找范围
});
在上述代码中间,只有被点击的元素内的span才会添加bar样式
如果选择器表达式是简单的$("#id"),则会根据原始的document.getElementById("id");来查找,如果是复杂的表达式或者指定了上下文,则会通过find()方法来查找,因此$("span",this)相当于$(this).find("span");


jQuery(html[,ownerDocument])、jQuery(html,prop)
如果传入的值是一段html代码,jQuery则尝试用这段代码创建新的Dom元素,并创建一个包含了这些Dom元素引用的jQuery对象,如果插入的是一段单标签,jQuery会使用原始的document.createElement()来创建,否则会使用innerHtml机制来创建Dom元素,这个过程由jQuery.buildFragment()和方法jQuery.clean()来实现,第二个参数是一个document对象,如果不传入,则会使用当前文档对象
如果HTML代码是一个单独的标记,那么第二个参数是props,props是一个包含了属性、事件的普通对象;在调用document.createElement()创建DOM元素后,参数props会被传给jQuery的attr()方法,然后有.attr()负责把参数props中的属性,事件设置到新创建的Dom元素上面去
参数props的属性可以是任意的事件类型("click"),此时属性应该是事件监听器函数,它将被绑定到新创建的DOM元素上面;参数可以是以下特殊类型:val,css,html,text,data,width,height,offset,相应的jQuery方法:val(),css(),html(),text(),data(),width(),height(),offset()将被执行,并且属性值会作为参数传入,其他类型的属性
则会被设置到新创建的DOM 元素上,某些特殊属性还会做跨浏览器兼容(如type、value、
tabindex 等);可以通过属性名class 设置类样式,但要用引号把class 包裹起来,因为class
是JavaScript 保留字。






jQuery( element )、jQuery( elementArray )
如果传入一个DOM 元素或DOM元素数组,则把DOM 元素封装到jQuery 对象中并返回。
这个功能常见于事件监听函数,即把关键字this 引用的DOM 元素封装为jQuery 对象,
然后在该jQuery 对象上调用jQuery 方法。例如,在下面的例子中,先调用$(this) 把被点击
的div 元素封装为jQuery 对象,然后调用方法slideUp() 以滑动动画隐藏该div 元素:
$('div.foo').click(function() {
$(this).slideUp();
});






jQuery(object)
如果传入的是一个普通的javascript对象, 则把该对象封转到jQuery对象中并返回
这个功能可以方便地在普通JavaScript 对象上实现自定义事件的绑定和触发,例如,执
行下面的代码会在对象foo 上绑定一个自定义事件custom,然后手动触发这个事件,执行绑
定的custom 事件监听函数,如下所示:
// 定义一个普通 JavaScript 对象
var foo = {foo:'bar', hello:'world'};
// 封装成 jQuery 对象
var $foo = $(foo);
// 绑定一个事件
$foo.on('custom', function (){
console.log('custom event was called');
});
// 触发这个事件
$foo.trigger('custom'); // 在控制台打印"custom event was called"




 jQuery( callback )
如果传入一个函数,则在document 上绑定一个ready 事件监听函数,当DOM 结构加载
完成时执行。ready 事件的触发要早于load 事件。ready 事件并不是浏览器原生事件,而是
DOMContentLoaded 事件、onreadystatechange 事件和函数doScrollCheck() 的统称






jQuery( jQuery object )
如果传入一个jQuery 对象,则创建该jQuery 对象的一个副本并返回,副本与传入的
jQuery 对象引用完全相同的DOM 元素。


jQuery()
如果不传入任何参数,则返回一个空的jQuery 对象,属性length 为0。注意,在jQuery
1.4 之前,会返回一个含有document 对象的jQuery 对象。
这个功能可以用来复用jQuery 对象,例如,创建一个空的jQuery 对象,然后在需要时
先手动修改其中的元素,再调用jQuery 方法,从而避免重复创建jQuery 对象。
0 0
原创粉丝点击