位置: 编程技术 - 正文

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给下拉框添加选项)

  • 核定征收企业股权转让的个人所得税
  • 实收资本的期末余额在借方还是贷方
  • 发票税率开错了3%开成5%怎么办
  • 税控系统的清单
  • 其他应收款账龄怎么算
  • 工会经费免征三年需要申报吗
  • 一般纳税人暂估成本的账务处理
  • 异地开发房地产会一直待在那个城市吗
  • 少收的应收和应付账款怎么处理?
  • 无形资产出租后还要摊销吗
  • 淘宝企业店铺的钱会打到哪里
  • 福利费需要交纳个税吗
  • 未足额代扣代缴车船税
  • 餐费报销需要发票吗
  • 房地产未售商品房已办房产证要交房产税么
  • 哪些情况需要变更船籍港
  • 雄安新区纳入综合考核
  • 房地产预售阶段增值税进项
  • 零申报的企业年末的利润表可以为零吗?
  • 成本类科目有哪四个
  • 信用担保对中小企业的作用
  • 债券回购的含义和种类
  • vue2-elm
  • 苹果电脑macbookpro使用教程
  • linux中gedit命令
  • 苹果mac os x 10.7.5
  • Win11 Dev 预览版 Build 25300
  • 月度计提所得税怎么调整
  • 税控系统发票如何验旧
  • typora修改背景颜色
  • 羊肚菌的功效和价格
  • 出差补贴怎么记账
  • 常用的前端大屏软件
  • vue程序运行过程
  • 大溪地海岛在什么地方
  • 预付货款账务处理会计分录
  • 外币存款业务
  • 汉字转拚音
  • vuex中this.$store.commit和this.$store.dispatch的用法
  • 股东分红的会计处理方法
  • 违约赔偿金要交税吗
  • 建筑公司收到的劳务费发票
  • 辞职单位补偿标准
  • http上传错误
  • 发票超额怎么办
  • 零申报年报
  • 专项扣除三险一金是哪三险
  • 工会建账需要建几本账
  • 新公司成立后税务方面有哪些流程2023
  • 期权费的合理范围计算
  • 营改增试点纳税人提供技术转让
  • 买到库存货 退货
  • 如何申请增值税留抵退税
  • 减免税做营业外收入的会计分录
  • 收到对方的银行承兑汇票
  • 企业利润分配的内容
  • 企业建帐的基本要求
  • 查看sqlserver操作记录
  • win10自带邮件怎么登录foxmail账号
  • linux命令行查找
  • centos如何删除用户
  • hpadrv.sys
  • win7专业版系统镜像
  • win10系统如何去除记住密码
  • onionwormimmune.exe是什么
  • window8任务管理器
  • linux内核怎么使用
  • win7创建一个标准用户账户
  • linux shell命令大全
  • node转go
  • js实现功能
  • android下的单元测试要配置以下说法不正确的是
  • Python3使用requests登录人人影视网站的方法
  • 增值税9%税率适用范围2023
  • 青岛崂山区税务局官网
  • 浦发银行企业银行电话
  • 个人所得税完税证明
  • 国税企业所得税网上申报
  • 定额发票作废了还能报销吗
  • 对方申请了红字信息表我这边怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设