位置: 编程技术 - 正文

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

  • 转账支付水电费属于什么会计科目
  • 增值税一般纳税人税率
  • 法人可以领发票吗现在
  • 用友T3怎么结转上年数据
  • 计提和缴纳企业所得税分录
  • 滞纳金可以个人承担吗
  • 本月计提所得税费用
  • 银行变更印鉴多久生效
  • 补提折旧以前年度损益调整汇算清缴怎么处理
  • 其他业务收入的核算内容
  • 如何理解定时是指收入在什么时候记入账册?
  • 跨省非独立核算分公司如何报税
  • 境外单位或者个人
  • 收据大写要写整吗
  • 工商年度报表怎么打印出来
  • 暂估原材料已领用还红冲吗
  • 民间非营利组织会计制度最新版
  • 暂估入库价格高于实际价格怎么调整
  • 企业筹办费会计处理
  • 为什么贷款利息变高了
  • 附加税是销项税减去进项税
  • 出差补贴算工资薪金吗
  • 管理费用怎么结转分录
  • 减免税额科目有没有余额
  • 开增值税专用发票必须走公账吗
  • mac osx10.11
  • php知识总结
  • 解聘员工补偿金能拖欠吗
  • 下一页分页符中间空白页
  • php读取txt文件内容并判断
  • 企业向个人借款是否合法
  • laravel实战教程
  • frameworks
  • 承兑贴现会计分录怎么做
  • sqlserver连接数据库的方法
  • 领取营业执照后超过30天
  • 应收票据的核算内容
  • 新成品油发票开具的模块解密是?
  • 本年度企业所得税怎么算
  • 成立业主委员会申请书
  • 以前年度多计提成本怎么处理
  • 固定资产属于净资产指的是什么
  • 建筑工程老项目开票截止日期
  • 产品研发专利
  • 对外贸易出口公司
  • 事业单位公务员考试条件
  • 生育保险基金的筹集原则是
  • 企业向个人借款利息如何缴纳增值税
  • 进项发票可以退税吗
  • 支付投资者投入的款项
  • 累计折旧税率
  • 报税中反写是什么意思
  • 往来账项询证函怎么填写
  • 三证合一后还有纳税人资格证吗
  • 小微企业建账
  • 获取数据库最新的一条记录
  • 如何远程连接小米摄像头
  • linux中yum的使用
  • 打造安全稳定
  • 安装windows7之前,应该做好准备工作
  • win8 metro应用
  • win8如何更改默认存储位置
  • win7计算机窗口菜单栏
  • opengl transform
  • shell随机
  • jquery 单页应用
  • javascript 变量
  • Android使用教程
  • shell脚本中判断入参是否为空
  • activity与fragment的通信
  • python文件描述符
  • python抓取手机号软件
  • 工具类软件有哪些
  • python whiletrue循环语句
  • python设计二叉树结构
  • 所得税季度报表收入成本怎么填
  • 发票与报销内容不一样
  • 江苏省财务官网
  • 资本结构不合理的公司有哪些
  • 图书行业税率多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设