位置: 编程技术 - 正文

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

  • 出口退税一般退什么税
  • 计入损益的税
  • 金蝶专业版怎么增加一级科目
  • 制造费用月末不可能有余额
  • 可变现净值与公允价值孰低
  • 设计原始凭证所需内容及步骤
  • 车间领用材料应填制什么凭证
  • 未能及时取得成功的成语
  • 固定资产汽车抵扣新政策
  • 项目部临时设施平面图
  • 金税盘开票怎么改成含税金额
  • 纳税人识别号在哪里能查到
  • 补偿金需要缴纳个税分开
  • 旅游业开办费
  • 摊销生产车间负担的保险费
  • 防暑降温列支什么费用
  • 公司活动服装费会计分录
  • 多计提企业所得税费用会计分录
  • 学校收取食堂管理费
  • macos的复制粘贴快捷键
  • 打开我的电脑提示该文件没有与之
  • 质押的应收票据怎么做账
  • 出口视同内销的账务处理?
  • linux系统授权命令
  • 酒店采购布草如何入账
  • Win7系统电脑c盘什么都没有为什么满了
  • PHP:pg_num_rows()的用法_PostgreSQL函数
  • PHP:pg_connect()的用法_PostgreSQL函数
  • 用银行存款支付本季度短期借款利息
  • 进出口公司出口退税额
  • 稳岗补贴支付范围
  • react 刷新
  • 【已解决】VUE3+webpack >5报错问题
  • 扣缴个人所得税报告表在哪里打印
  • 交易性金融资产公允价值变动计入
  • php实现登录功能
  • 通用机打发票可以查验吗
  • 增值税买一送一处理方法
  • 印花税没有及时交会有什么后果
  • 结转成本相关内容有哪些
  • 发票未到已付款怎么入账
  • 计提工资是什么时候计提
  • 法人向公司账户打款合法吗
  • 不征税收入怎么申报增值税
  • 利息收入的会计分录
  • 哪种发票可以报税
  • 公司买车可以抵扣企业所得税吗
  • 工程施工怎么结转,用友自动结转吗
  • 加计减免其他收入怎么填
  • 一般纳税人出现以下哪些情况时,其进项税额不得抵扣( )
  • 去年已入账的材料怎么查
  • 招待费用的进项发票可以抵扣吗
  • 公司报销发票需要查验真假吗
  • 因产品质量问题造成的损失怎么赔偿
  • 长期待摊费用处置
  • 会计的总目标是什么意思
  • 房地产开发企业成本核算方法
  • 应付利息属于经营性负债吗
  • sql server数据库恢复
  • SQL Transcation的一些总结分享
  • ubuntu16lts
  • mac苹果系统怎么用
  • centos云服务器
  • 腾讯tp驱动
  • win7无线网络连接不上怎么解决方法
  • PQIBrowser.exe是什么进程 PQIBrowser进程查询
  • bootstrap 下拉框绑定数据
  • easyui下拉列表
  • 微信小程序图片加载不出来
  • python怎么写链表
  • JavaScript jQuery 中定义数组与操作及jquery数组操作
  • bat批处理if命令
  • jquery旋转动画
  • 法线贴图使用
  • 在企业内部具有行使否决权的是
  • 浙江国税局电话客服热线
  • 拆迁户契税减免政策文件
  • 税务部门组织收入会议报道
  • 浙江国地税联合申报系统官网
  • 如何在国税网下载发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设