位置: 编程技术 - 正文

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

  • 河北金税盘
  • 国税登记号和地税登记号是什么
  • 车辆计提折旧需要计提吗
  • 股权转让分期付款合同范本
  • 税控盘如何统计开票金额
  • 个税手续费返还政策文件
  • 固定资产后续支出可以计入哪些费用
  • 银行基本户可以变更成一般户吗
  • 外贸企业出口退税账务处理
  • 装饰费是否计算缴纳土地增值税
  • 工程节点奖金
  • 广告费支出限额
  • 公司贷款买车后影响公司收购吗
  • 风险纳税人怎么查询
  • abs应付债券
  • 计提所得税费用会计分录
  • 物业水费电费
  • 电子发票没有发票号码是怎么回事
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 支付装修押金会退吗
  • Linux中samba服务区怎么创建多个用户
  • 评估报告怎么算合法
  • 生产部门设备折旧费
  • 方正电脑如何做系统
  • linux用途是什么
  • 操作系统的安全目标主要包括哪些?
  • 赠品没有收到
  • 公司刚成立多久可以注销
  • cda是什么文件格式
  • 城建税教育费附加和地方教育费附加税率
  • 利用php计算1+2+3+...+100
  • 银行转来委托收款
  • 固定资产的非正常报废
  • 以摊余成本计量且其变动计入当期损益
  • the模板引擎
  • thinkphp3.0
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • 特斯拉 ai day
  • 美国大学数学系排名
  • typescript some
  • 功能强大的php文件有哪些
  • discuz去除官方论坛
  • node运行vue项目
  • 集团内部借款利率如何确定
  • 留抵抵欠税附加税需要交嘛
  • 定额转查账征收
  • 企业技术转让会计分录
  • 安装调试费计入
  • 不需要计提折旧的情况
  • 单式记账法因为其简单易学,记账效率高
  • 企业过桥贷款违法吗
  • 工会经费的计提比例
  • 国外工程合同类型
  • 预收账款转收入的条件
  • 承租人对融资租赁业务进行会计处理的方法有( )
  • 如何开发票?
  • 什么是现金等价物
  • 在MySQL中使用STRAIGHT_JOIN的教程
  • sql server如何
  • win8怎么卸载
  • 微软官方重做系统
  • win10右键菜单自定义
  • 如何系统还原xp
  • win7删除windows.old
  • SsAAD.exe - SsAAD是什么进程
  • xp系统怎么关闭更新系统
  • windows defender 图标怎么从任务栏删除
  • win7怎么删除操作中心
  • pdoors.exe
  • linux服务器dns怎么设置
  • opengl3d
  • oracle安装使用
  • linux共享内存最大值
  • python os模块
  • Android 判断是否打开了微信
  • jquery点击方法
  • 研发费用加计扣除2022政策
  • 公办幼儿园和企办幼儿园区别
  • 资源税谁缴纳
  • 公司收购农民的农产品能贴我公司标签吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设