jQuery工作原理

本文详细解析jQuery的工作原理,包括访问网页元素、jQuery命名空间和对象、特殊数据类型和结构。重点介绍了jQuery()函数、上下文、DOM构建后的执行、元素创建与插入以及版本1.5后的新技术如jQuery.sub()和jQuery.when(),帮助开发者深入理解jQuery的高效操作DOM的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jQuery工作原理

首先需要了解JavaScript以及文档对象模型DOM的联系。

访问网页元素

网页在浏览器中以DOM中的元素表现。这些元素通常具有特性(Attribute)、文本内容和子元素。如果对JavaScript以及DOM的熟悉与掌握程度非常高,甚至可以使用其复现出jQuery中的相关功能,只不过这种方式不仅复杂,而且可靠度比较低。(而jQuery的访问技术将对DOM元素的访问的过程缩短和标准化,弥补了浏览器相关特殊性引发的问题,并且添加了遗漏的功能。)

jQuery命名空间和jQuery对象

命名空间namespace在编程中的作用性不言而喻,但是JavaScript不支持命名空间的概念。在JavaScript中,为了实现这一概念,使用句点标记法分割对象空间和属性,并以此为模板,将标识符中以句点分割的组件当做不同的命名空间。

jQuery试图在JavaScript中引入命名空间的概念。在这个框架中,所有全局对象被指定在一个命名空间中,该命名空间用以 jQuery的标志开始、分隔符之后带上整整名称的标识符定义。以后,被标识的元素被指定到jQuery的命名空间,可以通过jQuery的标志或者较短的别名$来访问。

jQuery中的特殊数据类型和结构

由于jQuery基于JavaScript,所以js中的标准数据类型(String,Number,Boolean,Object,Function;数组;回调;XMLHttpRequest对象;原型技术)

选项

jquery中的选项实际上指的是JavaScript对象

map

jQuery中添加二楼一种数据类型Map,作为特殊的选项。例如,这个类型用于框架的AJAX函数中。请求数据可以以这种形式交付。

jqxHR

jQuery1.5中推出了一种与AJAX关联的新数据类型。$.AJAX()方法返回一个类型为布尔类型的整数

jQuery()函数和$()别名

上下文

jQuery()的第二个参数(可选的)指定上下文(context)。上下文指的是元素课件的环境。如果不指定它,则用整个html文档作为上下文。否则,可以指定一个DOM元素、文档或者jQuery对象作为上下文,然后,元素仅在这个上下文中可见。

在DOM构建之后执行函数

由于无法在DOM树正确地构造之前,可靠地通过JavaScript在浏览器中访问webpage的组件,因为不同的浏览在构造DOM时的表现不同,在试图访问网页元素是会发生各种各样的问题,尤其是在试图过早地访问网页元素的情况下。为此,jQuery提供了避免此类问题的一个可靠办法。

注:在JavaScript中,原则上,可以使用onload时间处理器等待网页的完全加载,然而,这个事件处理器在不同的browser中有错误的实现。

作为jQuery()参数的的回调或者是匿名函数

使用$(function(){})作为匿名函数的方法来实现$(document).ready()的功能比较常用。

用jQuery()创建一个元素并且将其插入网页

jQuery()和$()的一个有趣的功能是即时创建DOM元素,然后,这些元素可以可靠地动态插入网页,使用.html或者innerHTML属性,具体取决于元素的类型。但是不需要担心内部的工作原理。

另外还有一个方法,具体元素创建之后调用其appendTo()方法。

初始化特性的选项

从jQuery1.4起,可以在创建元素中,使用者厚重感你方法,指定选项为第二个参数,设置所创建元素的属性。

var block = $(“div/”,{

​ css:{

​ background:“red”,

​ color:“green”

​ },

​ html:“a block with parameters”

​ click:function(){

​ $(this.fadeOut(“slow”));

​ }

})

版本1.5之后的新技术

jQuery.sub()

用此方法创建jQuery对象的一个新拷贝,其属性和方法可以修改,而不会影响原始的jQuery对象。框架中引入这个这个方法有两个原因。其一,可以方便地用它重写jQuery中的方法,而不会损毁原始的方法或者阻止其访问。其二,可以更好地封装jQuery插件的命名空间。

jQuery.when()

这个方法让你描述一种if条件,如果出现该条件,可以执行一个或者多个对象的回调函数。这对于异步或者通常推迟发生的事件(比如说ajax)特别有用。和then方法连接使用,可以描述一个紧凑的响应系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值