位置: IT常识 - 正文

JavaScript の querySelector 使用说明

编辑:rootadmin
本文记录,JavaScript 中 querySelector 的使用方法。小白贡献,语失莫怪。 // 两种 query 的 method (方法) document.querySelector(selectors); document.querySelectorAll(selectors); 为什 ...

推荐整理分享JavaScript の querySelector 使用说明,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文记录,JavaScript 中 querySelector 的使用方法。小白贡献,语失莫怪。

// 两种 query 的 method (方法)document.querySelector(selectors);document.querySelectorAll(selectors);

为什么要学习 querySelector:

因为 front end 中,JavaScript 的基本逻辑就是: 选取一个 element,然后 do somethong with it;所以,一切的开始,就是要先想办法,抓到那个 element;而 querySelector 就是众多选择器中,特别好用的一个;所以,非常有必要学习;熟练的使用它,就等于迈开了前端 JS 编程,的第一大步!

那么 querySelector 是什么:

document.querySelector() 用于选取 html 中的节点(node | element);相较于传统的 DOM 选择器 (DOM selectors),其特点是,可以使用 CSS 风格的 Selectors;并且几乎支持所有CSS选择器的 syntax 风格;

常用方法,语法对比:JavaScript の querySelector 使用说明

常用的 get 某个节点的方法,无外乎三种,通过 class,tag,id;传统的 DOM 选取,与 querySelector() 的 syntax 对比如下:

// select element by class namedocument.getElementsByClassName("class_x");document.querySelectorAll(".class_x");// select element by tag namedocument.getElementsByTagName("img");document.querySelectorAll("img");// select element by id namedocument.getElementById("id_x");document.querySelector("#id_x");

使用 "多个" 选取条件,或 "递进式" 的选取条件 (descendant selector):

选取条件,可以是一个或者多个;多个的情况,并不限制个数,可以是2个,3个 ... N个;

// "递进式" 的选取条件 (descendant selector) (可以夸级) (使用"空格"符号)document.getElementsByClassName("class_x").getElementsByTagName("img");document.querySelectorAll(".class_x img");// "父子递进式" 选取条件 (不可以夸级, 必须是严格的直系父子)document.querySelectorAll(".parent_class > .child_class > .grandChild_class")// "父子递进 + 混合式" 选取条件 (使用 ">" 符号)// 选取 parent_class 中的 child_class 中的 grandChild_class,中的 img tagdocument.querySelectorAll(".parent_class > .child_class > .grandChild_class tag_img")// "递进式" 的选取条件,属性选取 (attribute)// 选取所有,id属性='large'的,并且class='bg'的,img标签document.querySelectorAll("img[id='large'][class='bg']");document.querySelector("img[id='large'][class='bg']");// "多个" 选取条件, 用逗号隔开 (相当于 A 或 B)document.querySelectorAll(".class_x, .class_y");document.querySelectorAll(".class_x, img");document.querySelectorAll(".class_x, #id_x");// "单个" 选取条件,返回第一个 matchdocument.getElementsByClassName("class_x")[0];document.querySelector(".class_x");// "多个" 选取条件,返回第一个 matchdocument.getElementsByClassName("class_x").getElementsByTagName("img")[0];document.querySelector(".class_x, img");// 选取类 class_x 中,类名为 big_pic 的 li 标签,下面的,全部兄弟们!document.querySelectorAll(".class_x li.big_pic ~ li ");// 选取类 class_x 中,类名为 big_pic 的 li 标签,紧挨着的,下一个兄弟!document.querySelectorAll(".class_x li.big_pic + li ");

对比 querySelector 和 jQuery:首先 querySelector 比 jQuery 要快!因为 querySelector 是内置方法!使用 querySelector,无需要挂在 jQuery 的文件,减少 overhead!jQuery 有各种 filter (例如:":input")! 而 querySelector,没有 jQuery 这种 filter!所以 querySelector 无法使用任何 (":input" 类的) filter!最终 querySelector 还是首选!

其他 querySelector 可使用的 CSS 选择器:

还有很多没介绍的,querySelector 可使用的 CSS 选择器;例如:伪选择器(Pseudo);通用选择器(Universal selector);一般兄弟组合器 "~" (General sibling combinator);紧邻兄弟组合器 "+" (Adjacent sibling combinator)。详情可参见 reference 中的,第4个,和第5个,link,里面有详细的 CSS 选择器的介绍

个人评价:

document.querySelectorAll() 的 "递进式" 选取,很好用;

去掉了 "传统 DOM选择器" 中,nest selector 的麻烦代码更简洁了返回的是 nodeList可进一步使用 nodeList.forEach()

而且,可以看出,当 css selectors 组合起来的时候,那种灵巧多变,是多么的强大啊!任何一个 element 都逃不过,组合的选择中。除非这个 element 不在 html 中!

Reference:Document.querySelector() - Web APIs | MDNElement.querySelectorAll() - Web APIs | MDNDescendant combinator - CSS: Cascading Style Sheets | MDNCSS selectors - CSS: Cascading Style Sheets | MDNCSS 选择器 - CSS(层叠样式表) | MDN
本文链接地址:https://www.jiuchutong.com/zhishi/303300.html 转载请保留说明!

上一篇:discuz如何开发关注功能(discuzq开发)

下一篇:python中time模块的时间格式(python中time模块的用法)

  • 职工薪酬纳税调减的情况
  • 房产公司结转收入条件
  • 交通运输企业车辆折旧能加速扣除
  • 计提职工非货币福利怎么算
  • 计提上一年度企业所得税会计分录
  • 房地产开发公司排名
  • 私售发票如何处罚
  • 作为福利手段福利概念的三个条件是
  • 多交税款抵税会计分录
  • 聘用劳务人员派遣合法吗
  • 暂估确定收不到发票会计分录怎么做
  • 机器维修费的会计科目
  • 税率与征收率有关系吗
  • 福利费不需要发票记账吗
  • 企业所得税负数会计分录
  • 不征收增值税项目进项税额可以抵扣吗
  • 变相处理问题什么意思
  • 管理费用怎么记忆
  • 坏账准备金最新计算公式
  • 质保金怎么挂账
  • 电子发票跨月怎么开红字发票
  • 软件开发过程中必须伴有质量保证活动
  • 租入房屋修缮费用谁承担
  • 打开网页提示打开别的应用
  • 住房公积金有什么用途和价值
  • 公司已开票给客户,但客户未打款怎么办?
  • 新车发生事故报废保险怎么赔付
  • php curd
  • 应收账款周转天数减少说明什么
  • 个体户何去何从
  • 房地产开发公式
  • 十分=1
  • php 生成随机字符串
  • php调试函数
  • 衍生工具主要用途
  • 如何进行iframe框架切换
  • 什么是AI工具
  • 虚拟机安装win11提示无法运行
  • 激光器原理及应用
  • 基于VGGNet乳腺超声图像数据集分析
  • php依赖注入的三种方式
  • phpcms v9官网
  • 委托加工物资如何做账
  • 帝国cms会侵权吗为什么
  • 生产型企业可以买进就卖出吗
  • 其他应收款怎么冲平会计分录
  • 原材料用于加工什么
  • 个人所得税中的速算扣除数是什么意思
  • 已提足折旧的固定资产出售的账务处理
  • 如何计算保费合同未规定加成比例
  • 冲帐发票
  • 固定资产是否可调剂
  • 收到加盟费怎么开票入账
  • 企业录用失业人员补贴
  • 电子监控系统安装与维修
  • 企业如何设置预缴税款
  • 国库单一账户体系包括哪些账户
  • linux运行级别定义在
  • mac osx 10.12
  • kcleaner.exe是什么
  • centos 常用命令教程
  • win8系统咋样
  • win10mobile官网
  • Screen.sleepTimeout=SleepTimeOut.NeverSleep 禁止屏幕锁屏
  • 启动dos快捷键
  • python爬虫入门教程非常详细
  • js array insert
  • js中top/parent/frame概述及案例应用
  • python win
  • jq获取form表单数据
  • js键盘事件有哪些?各自的作用如何
  • 正途科技有限公司
  • js实现双击屏幕放大
  • 江西国税发票查询官网
  • 电子发票如何盖电子章
  • 保险的佣金一般是多少
  • 卷烟批发环节的消费税一箱150元
  • 山西房产税征收标准
  • 厂房房产税2021年税率
  • 金税盘和uk
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设