jQuery对象的组成
jQuery的基本结构
1、工厂函数:
jQuery语句主要包含三大部分:$()、document()和ready(),分别被称为工厂函数、选择器、方法,语法形式为$(selector).action()。
2、类型转换:
DOM对象和jQuery对象之间不能相互使用他人的内容,jQuery对象就是通过jQuery包装DOM对象之后产生的对象。
3、选择器:
基本选择器包括ID选择器(#)、类选择器(.)、标签选择器(element)、通配符选择器(*)、并集选择器(,)。
层次选择器包括后代选择器(空格)、子代选择器(>)、紧邻选择器(+)、兄弟元素器(~)。
可见与不可见选择器如toggle()、hide()、show()。
属性相关选择器如$("a[href]")、$("a[href=’luffy’]")等。
4、节点操作:
包括创建节点、插入子节点、外部插入同辈节点、删除节点、替换节点、复制节点等。
5、常用方法:
显示与隐藏方法如show()、hide()、toggle()、slideUp()、fadeIn()等。
查找和遍历筛选如map()、find()、children()、parent()等。
取值和赋值操作如val()、text()、html()等。
AJAX操作如$.get()、$.post()、$.ajax()等。
jQuery对象的组成部分
1、构造函数:
标识符jQuery是一个function,其内new了一个function init的实例,然后返回,真正的构造器是jQuery.fn.init。
2、原型链:
jQuery.fn = jQuery.prototype = {constructor: jQuery, init: function(selector, context, rootjQuery){}}。
jQuery.fn.init.prototype = jQuery.fn; 这句把function jQuery的原型赋值给了function init的原型。
3、属性和方法:
挂在jQuery.prototype.init中的this上的属性或方法,如this.context。
挂在jQuery.prototype.init.prototype上的属性或方法,如this.size/this.toArray。
通过jQuery.fn.extend({...})方式扩展的属性或方法。
示例代码
// 模拟jQuery写一个zchain-0.1.js function $(selector){ return new $.prototype.init(selector); } $.prototype={ init:function(selector){ if(selector === undefined){ this.length = 0; return this; } if(selector.nodeType==1){ this[0] = selector; }else{ this[0]=document.getElementById(selector); } this.length=1; }, css:function(name,value){ this[0].style[name] = value; return this;//链式调用 }, hide:function(){ var self=this; setTimeout(function(){ self[0].style.display="none"; },3000); return this;//链式调用 } } $.prototype.init.prototype=$.prototype;
相关问题与解答
1、问题一:如何将jQuery对象转换为普通JavaScript对象?
解答:可以使用get()方法或toArray()方法将jQuery对象转换为普通JavaScript对象。
```javascript
var divs = $('div');
var firstDiv = divs.get(0); // 获取第一个div元素作为普通对象
var divArray = divs.toArray(); // 获取所有div元素组成的普通对象数组
```
2、问题二:为什么在调用$("#id")时返回的对象是由function init中this带的属性或方法和function jQuery的prototype带的属性或方法组成?
解答:这是因为jQuery的设计采用了原型继承的方式,当调用$("#id")时,实际上是创建了一个新的jQuery.fn.init对象,这个对象的原型被设置为jQuery.fn,这个对象既包含了function init中this带的属性或方法,也包含了function jQuery的prototype带的属性或方法。
各位小伙伴们,我刚刚为大家分享了有关“读jQuery之一(对象的组成)-jquery”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!