Jquery选择器----$实现原理

jquery选择器的简单实现 jquery 立即下载

在此之前对于Microsoft Ajax的Sys和Jquery的$符号一直很好奇, 不明白为什么输入一个'$()'就可以实现选择器?但由于工作的原因,很久不曾做过网站项目了,也没有时间去好好研究Jquery的源码,这个疑问也一直没有得到解决了, 今天,空闲之余,打开Jquery的源码看看,才明天它实现的原理,原来在加入jquery的js这个文件时,实际上是执行了一个函数,在这个函数里己经初始化了$和JQuery变量, 实现这个功能源码如下(代码已删减和更改,并不影响说明实现原理):

 

从代码里我们可以看到有这样一个函数执行了(funtion(){})();

  var  window = this;
    _jQuery = window.jQuery;
    _$ = window.$;

这几句代码应该是声明jQuery和$变量,至于为什么能这样子用我还没弄明白,等待高人解决!!

但我认为这并没关系,因为最重要的是下面这段代码:

    jQuery = window.jQuery = window.$ = function(selector, context) {
        return new jQuery.fn.init(selector, context);
    };

可以看出创建jQuery.fn.init这样一个函数返回给$, 这样是可以使用$实例了,但还不能访问jQuery.fn里的方法,因此需要加上后面这句:

jQuery.fn.init.prototype = jQuery.fn;

 

实现了这些, Jquery中的其他功能就很好理解了, 无非是添prototype或extend中的方法了.

 

Jquery选择器 $实现原理 在此之前对于Microsoft Ajax的Sys和Jquery的$符号一直很好奇, 不明白为什么输入一个'$()'就可以实现选择器? 立即下载

相关推荐

python -- 海洋气象科研论文中常用绘图配色汇总

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。可以通过自定义选取不同颜色的rgb,通过自定义的方式构建colormap。

weixin_68789096的博客 972

解析Jquery选择器的工作原理

每次申明一个jQuery对象的时候,返回的是jQuery.prototype.init对象,很多人就会不明白,init明明是 jQuery.fn的方法啊,实际上这里不是方法,而是init的构造函数,因...

Wangxinlei_King的博客 532

光通信仿真入门:手把手教你用VPI和Matlab搭建第一个联合仿真系统(含避坑指南)

本文详细介绍了如何使用VPI和Matlab搭建光通信联合仿真系统,涵盖软件配置、链路搭建、数据交互等关键环节,并提供常见问题的解决方案。特别适合初学者快速掌握光通信仿真技术,避免常见错误,提升仿真效率。

weixin_28733637的博客 377

jQuery中$(‘‘)选择器的实现原理概述

第一步:选择器入口 jQuery.fn.init是一个构造函数,同时他的prototype指向了jQuery.fn和jQuery.prototype,调用$()时会返回一个他的实例。 context是上下文环境,一般不传 $.fn是指jQuery的命名空间,加上fn上的方法及属性,会对jQuery实例每一个有效 第二步:init构造函数 进入init函数后会根据传入的参数数据类型进行不同的操作,用作选择器时会传入字符串 if ( typeof selector == "string" ) { /

REDJOLER的博客 1084

OpenWrt南京电信PPPoE IPv6配置:从零搭建稳定双栈网络

本文详细指导如何在南京电信PPPoE宽带环境下,为OpenWrt路由器配置稳定的IPv6双栈网络。核心在于正确设置WAN6接口为DHCPv6客户端,并请求/60前缀,同时配置LAN口分发地址并放行防火墙关键流量,确保内网设备获得原生IPv6连接。

water的专栏 1339

3D视觉入门必看:深度图、点云图、IR图、RGB图像到底有什么区别?

本文深入解析了3D视觉中深度图、点云图、IR图与RGB图像的核心区别。深度图记录像素距离,是连接2D与3D的桥梁;点云图是显式的三维坐标集合;IR图感知红外光强度;RGB图像则提供颜色纹理。理解其信息维度和应用场景,是进行机器人导航、三维重建等任务的基础。

year5的博客 342

jQuery的选择器原理

建立一个$函数,通过传元素的名称前缀来判断的选取的元素类型,名称来选取元素,并进行相应的操作,如改变属性,元素内容,以及css样式function $(selected){ //alert(selected); //获取要得到对象的标识 var firstChar = selected.substr(0,1); //标识后面的参数 var sel =selected.subst...

心合的博客 855

Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

nexus3旧版本OrientDB升级H2,及整体迁移nexus3数据到其它服务器。

葫芦娃 5550

【前端】jQuery选择器$()的实现原理

今天三七互娱技术面试的时候面试官问了我这个问题,当时一脸懵逼,于是好好总结一下。   当我们使用jquery选择器的时候,$(s).回默认去执行jquery内部封装好的一个init的构造函数每次申明一个jQuery对象的时候,返回的是jQuery.prototype.init对象。这个init不是jquery.fn上的方法,而是内部源码的一个函数。   这个函数是干什么用的呢?   ...

weixin_30363509的博客 226

如何有效爬取“好大夫”评论数据?技术实现与合规性分析

本文探讨了爬取好大夫在线医生评论数据的技术与合规性问题。分析了好大夫平台评论数据的价值和特点,指出其动态加载和反爬机制的挑战。技术上,推荐使用Selenium模拟浏览器行为获取数据,并提供了分页爬取、代理IP、验证码识别等解决方案。同时强调必须遵守平台的爬虫策略,关注用户协议和隐私保护法规,建议通过官方API或授权方式获取数据。文章还讨论了数据清洗存储方法,并提醒注意数据伦理和最小化抓取原则。本文为医疗数据爬取提供了技术实现和合规性指导的平衡方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1052

学Simulink——基于电能质量治理的场景实例:静止无功发生器(SVG)与并网逆变器的结合

本文详细介绍了基于Simulink的SVG与光伏并网逆变器联合仿真建模方法。系统包含光伏单元、SVG主电路、控制策略(无功检测+双闭环控制)等模块,通过ip-iq法实现动态无功补偿。仿真结果表明,SVG能快速响应负载变化,将功率因数提升至0.98以上,有效稳定母线电压。该方案为新能源并网系统提供了有功/无功协同控制解决方案,具有10ms级响应速度和±5kvar补偿能力。文章提供了完整的建模流程、控制算法实现和结果分析,可作为电力电子与电能质量治理领域的实践指导。

amy_mhd的博客 167

jQuery——7.jQuery中 ID选择器实现原理

/获取从指定的下标开始包括这个下标到结束的字符(“#zxw1”)——>zxw1。//获取从指定的下标开始包括这个下标到结束的字符(“#zxw1”)——>zxw1。//获取从指定的下标开始包括这个下标到结束的字符(“#zxw1”)——>zxw1。// this.style[k]=v 参数相互赋值要这样写才不会写死。//给对象e创建一个叫CSS的新方法。//函数的名称就是$//函数的名称就是$//函数的名称就是$

weixin_63215361的博客 705

SAP NetWeaver Business Client (NWBC) 的深入解析

SAP NetWeaver Business Client(NWBC)作为 SAP 提供的一种用户界面,旨在为终端用户提供无缝集成传统 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序的体验。SAP NetWeaver Business Client(NWBC)是 SAP 推出的用户界面,旨在为终端用户提供单一入口,集成传统的 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序。在实际业务场景中,NWBC 的应用提升了用户的工作效率和体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1603

jquery 判断点击次数_我现在写jquery,你们会不会打我??

时光荏苒,岁月如梭,转眼多年过去。前端天下已各分东西,回眸看看来时的路,你我可曾记得当年的大哥 jquery。回想那个纯真的年代,jquery一统天下,前端的世界如此纯洁无瑕。引子此时此刻又让我想起了当年的游戏时光,早期游戏只能玩类似《传奇》《魔力宝贝》这么些。大家没得选所有人都会玩这么几款游戏,随着时间推移现在游戏越来越多,忽然发现可以玩的游戏却少了,前端世界也是如此,框架技术层出不穷,很多前端...

weixin_42522552的博客 137

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jquery内部实现原理分析

我们经常用jquery的选择器,甚至为jquery写插件,今天来讨论一下jquery内部的实现原理。 一、关于window.$和window.jQuery 其实在jquery中这两个变量就是一个函数对象,即如下的形式 window.$=window.jQuery=function(){ .... } 二、关于jQuery.fn和jQuery.prototype 其实在jquery中j

liupc123123的专栏 8007

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jQuery 封装、插件浅析

今天小码哥突发兴致想学习jQuery。当正在研究一个不错的插件的时候,又突然有了一个疑问,那就是为啥很多大拿前辈们在封装自己写的插件的时候总是按照这个格式:如;(function($){})(jQuery);。或者是这样定义方法对象的?如:$.fn.add=function(){}啥的!!尤其是后一个$.fn中的fn是干什么的?(大家不要笑俺,,,小码哥也是初学者,还有很多没...

weixin_34318956的博客 142

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

前端面试题JQuery

1. $的原理 答案: $(“选择器”) 是先查找DOM元素,再将DOM元素放入jQuery对象中 其中自带优化: 如果选择器是#id,则自动调用getElementById 如果选择器是.class,则自动调用getElementsByClassName 如果选择器是标签名,则自动调用getElementsByTagName 否则,其它选择器,都自动调用querySelectorAll() $(DOM元素) 是直接将DOM元素放入jQuery对象中 $(“HTML片段”) 是创建一个新元素 $(func

AyayaOVO的博客 281

jQuery源码分析(一)

jQuery源码分析(一) 我们知道在jQuery中在使用选择器或者给元素绑定事件的时候都是通过$来操作的。那么基于JavaScript面向对象的思想,我们可以把jQuery看做一个函数或者对象,它里边存储了大量的方法,是一个类库。 $代表的就是jQuery $.ajax() --------- jQuery.ajax() 当做对象来看就是jQuery调用它静态私有的属性和方法,同样我们可以再控制台输出一下dir(jQuery)看到jQuery对象中存储属性和方法: jQuery.prototype 原

Lele___的博客 3316

jQuery源码解析-jQuery1.10.1为例

jQuery1.10.1为例 <script src="https://cdn.bootcss.com/jquery/1.10.1/jquery.js"></script> jQuery的源码中整体就是一个匿名函数自执行 第一个形参window 接收到的就是 window对象 (function( window, undefined ) {...... ...

JackieDYH的博客 752

$到底是什么-详解jQuery的$符号和init函数

前言 本文所有代码,出自jQuery.1.5.2,为方便理解,引入类的概念,虽然jQuery不是基于面向对象思想。 jQuery是现在最流行的Javascript框架, $是其中最常见的符号,已经在jQuery留下了深深的烙印。 那么$到底是什么东西,它可以接受一个字符,也可以接受一个文档对象,亦或者一个函数,也可以调用一个函数。 接下来我会彻底分析这个符号背后隐藏的秘密。

pgmsoul的专栏 1万+

2019 JQuery 面试题

jQuery $ 的原理? $ (“选择器”) 是先查找DOM元素,再将DOM元素放入jQuery对象中 其中自带优化: 如果选择器是#id,则自动调用getElementById 如果选择器是.class,则自动调用getElementsByClassName 如果选择器是标签名,则自动调用getElementsByTagName 否则,其它选择器,都自动调用querySelectorAl...

weixin_45579891的博客 1175

通过javascript直接实现jQuery的$(".class1")方法

通过javascript直接实现jQuery的$(".class1")方法 <!-- //通过javascript直接实现jQuery的$(".class1")方法 //思路是先找到同类标签,比如div,table然后遍历数组判断 //这里实现了div标签的遍历,比葫芦画瓢,依次实现table,body等 fun

天祺围棋 896

原型 - 实现自己的jQuery

每个第一次使用jq的开发者都感到惊叹,jq的$太神奇了,究竟是怎么做到的使用$控制dom 赞叹前人之余,探究其本源才是前端开发者应该做的事,社区常常说,不要重复造轮子, 可是啊,连轮子都造不出来,又怎么去了解在什么环境下用什么轮子,怎么样才可以造成更加优秀的轮子, 不同阶段对前端有不同的理解,作为一名程序员,本就是没有尽头,静下心来,和别人比一比,多借鉴前人的发展,取其精 华去其糟粕,不要闭门造车...

weixin_30399797的博客 150
上一篇: VC++内存泄露定位
下一篇: JS类的封装及实现
study_live
博客等级 码龄19年 20粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值