位置: 编程技术 - 正文

jQuery原理系列-css选择器的简单实现(jquery的底层原理)

编辑:rootadmin

推荐整理分享jQuery原理系列-css选择器的简单实现(jquery的底层原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery原理和实现步骤,jquery 原理,jquery原理和实现步骤,jquery技术,jquery原理和实现步骤,jquery工作原理,jquery的底层原理,jquery 原理,内容如对您有帮助,希望把文章链接给更多的朋友!

jQuery最强大的功能在于它可以通过css选择器查找元素,它的源码中有一半是sizzle css选择器引擎的代码,在html5规范出来之后,增加了document.querySelector和document.querySelectorAll直接查找元素,如果是做移动端开发的,使用jQuery的必要性大大降低。

用js代码实现css选择器,必然是用正则表达式来识别字符串了,当然浏览器提供的原生api 效率更高,以下代码只做原理性展示,并未优先性能,

例如

1)查找id显然是用document.getElementById更高效,浏览器已经做了hash,一次性找到元素不用遍历每个节点。

jQuery原理系列-css选择器的简单实现(jquery的底层原理)

2)查找 name用document.getElementsByName更高效,浏览器已经做了一个含有该name的集合,

3)查找标签名 用document.getElementsByTagName更高效,浏览器已经做了一个含有该tag集合,从这个集合中再查找子集显然可以少遍历很多的元素,至于浏览器是不是在元素创建的时候就更新了缓存的集合就不得而知了,但是从这个集合中判断是不是目标元素的子节点还要用contains也会有性能损耗。

好了,我们先不考虑用原生api优化选择器的问题,只用纯正则表达式来做一个简单的实现,先用正则判断如果含有#就是id选择器,如果含有点号就是class选择器,如果含有[]就是属性选择器,设定好查找目标后开始遍历子节点,要用递归函数遍历childNodes子节点的id,name,className,getAttribute是否匹配,如果匹配就返回该元素。完整的代码如下:

html:

javascript:

以上这篇jQuery原理系列-css选择器的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

基于jQuery下拉选择框插件支持单选多选功能代码 由于最近项目的需求,需要做一个下拉选择框的插件,支持单选显示表单数据,多选显示表格数据,该插件主要运用了jQuery与jqgrid以及easyui。下面给大家展示

jQuery封装的屏幕居中提示信息代码 本文实例讲述了jQuery封装的屏幕居中提示信息代码。分享给大家供大家参考,具体如下:functionshowLoad(tipInfo,type,autohide){varpic="";switch(type){case0://loadingpic="

jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析 本文实例讲述了jQueryAjax和getJSON获取后台普通json数据和层级json数据用法。分享给大家供大家参考,具体如下:运行效果截图如下:具体代码如下:!DOCTYP

标签: jquery的底层原理

本文链接地址:https://www.jiuchutong.com/biancheng/386643.html 转载请保留说明!

上一篇:jQuery原理系列-常用Dom操作详解(jquery实现原理)

下一篇:基于jQuery下拉选择框插件支持单选多选功能代码(jquery给下拉框添加选项)

  • 塑料制品开票税率
  • 如何理解递延所得税资产和递延所得税负债
  • 什么原始凭证可以填写
  • 拿工资要开发票,发票去哪儿开?
  • 减免所得税额怎么做分录
  • 待报解预算收入计入什么科目
  • 结转结余属于什么科目
  • 公司注销单位社保欠费怎么处理
  • 上个月发票忘记开了怎么办
  • 通行费发票抵扣要勾选认证吗
  • 视同销售不开票如何计算增值税?
  • 房产税房产原值包括地价吗
  • 独立核算的分公司怎么报税
  • 视同销售收入计入会计利润吗
  • 契税缴纳企业所得税吗
  • 借款超期不还利息的法律规定
  • 本月进项税额不够抵扣怎么办
  • 固定资产更换配件怎么界定是否满足资本化
  • 产品销售员
  • 汽车修理厂可以安装车牌吗
  • 买车购置税为什么除11.3
  • 加速折旧税收优惠
  • 自然灾害造成的存货净损失计入什么科目
  • 所得税季报营业收入本年累计
  • 集团内部股权无偿划转引起资本公积增加需要印花税
  • 高新企业产品开发的折旧费用可以税前扣除吗?
  • 电器供应
  • 分公司注销分配表
  • 事业单位是否需要章程
  • 员工休产假期间公司发工资吗
  • 预付账款供应商类别怎么填
  • 电脑管家怎么检测
  • 销售净利率的计算公式有哪些
  • 项目投资净现值计算公式
  • 人工装卸怎么办营业执照
  • 软件开发行业的现状
  • vue slot标签
  • 秋分日的时间意义庆祝方式
  • 巴尼奥斯附近的阿格杨瀑布
  • 购买二手车要缴税吗
  • “Ninja is required to load C++ extensions”解决方案
  • vue图片点击放大
  • 投资性房地产在资产负债表哪个科目
  • python读取全部文件
  • 公司房租收据怎么写
  • 准则对()、()和()等作出基本规定
  • 扣除公积金分录
  • 进项票和销项票是什么意思
  • 母子公司间资产划转是否属于特殊性收入
  • 收到运输服务发票会计分录
  • 长期股权投资收益会计处理
  • 出口免费样品怎么做账
  • 其他债权投资有没有减值准备
  • 车辆租赁费发票怎么开
  • 私人银行卡给公司走账有影响吗
  • mysql 5.7.16 winx64安装配置方法图文教程
  • CentOS 6.5 i386 安装MySQL 5.7.18详细教程
  • win8连接网络
  • windows10电脑重置电脑
  • mac系统如何切换中文
  • linux 安装jmap
  • imgconv.exe进程
  • win10正版授权图标
  • airplay macbook
  • mac怎么格式
  • win7系统更新补丁会解决游戏卡顿的问题吗
  • win8更改电脑设置在哪
  • IE、FF、Chrome浏览器中的JS差异介绍
  • 右键打开方式里没有word
  • Vue-Access-Control 前端用户权限控制解决方案
  • nodejs socket框架
  • javascript怎么学
  • javascript的核心组成部分
  • 安卓动画不流畅
  • 江西税务局官网登录
  • 江苏省地税局公众号关注
  • 进口哪些情况要交税
  • uk怎么查看发票开票额度
  • 开票日期是今年但是业务是去年
  • 增值税发票勾选操作流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设