位置: 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模块的用法)

  • switch怎么连接蓝牙耳机(switch怎么连接蓝牙)

    switch怎么连接蓝牙耳机(switch怎么连接蓝牙)

  • 抖音名怎么改不了(抖音名改不了,显示已被认证)

    抖音名怎么改不了(抖音名改不了,显示已被认证)

  • 微信群群主怎么删除隐身的人(微信群群主怎么改群员昵称)

    微信群群主怎么删除隐身的人(微信群群主怎么改群员昵称)

  • 如何用siri声音做视频(怎么用siri音效)

    如何用siri声音做视频(怎么用siri音效)

  • 淘宝退货要卖家同意吗(淘宝退货要卖家付运费吗)

    淘宝退货要卖家同意吗(淘宝退货要卖家付运费吗)

  • 微信为什么不能登录(微信为什么不能扫码付款)

    微信为什么不能登录(微信为什么不能扫码付款)

  • 苹果三网通什么意思(三网通苹果手机有哪些型号)

    苹果三网通什么意思(三网通苹果手机有哪些型号)

  • iphone11充电自动开机(iphone11充电自动开机后自动断电)

    iphone11充电自动开机(iphone11充电自动开机后自动断电)

  • 实名认证可以认证几个号(实名认证可以认证多个账号吗)

    实名认证可以认证几个号(实名认证可以认证多个账号吗)

  • 手机摔黑屏闹钟响关不掉(手机摔黑屏闹钟响关不掉响多久不响)

    手机摔黑屏闹钟响关不掉(手机摔黑屏闹钟响关不掉响多久不响)

  • 华为mate30德国发布会时间(华为mate304g发售价)

    华为mate30德国发布会时间(华为mate304g发售价)

  • 微信只有群主才能@所有人吗(微信只有群主才能踢人吗?)

    微信只有群主才能@所有人吗(微信只有群主才能踢人吗?)

  • xr是不是广角摄像头(xr手机有广角功能吗)

    xr是不是广角摄像头(xr手机有广角功能吗)

  • 手机ip截图是指什么截图(本机ip截图)

    手机ip截图是指什么截图(本机ip截图)

  • 升级了ios13怎么降回去(苹果13版本更新后如何?)

    升级了ios13怎么降回去(苹果13版本更新后如何?)

  • 清楚的近义词是什么(清楚的近义词是什么 一年级)

    清楚的近义词是什么(清楚的近义词是什么 一年级)

  • 语音电话对方忙线中什么意思(语音电话对方忙线会知道我打过去吗)

    语音电话对方忙线中什么意思(语音电话对方忙线会知道我打过去吗)

  • 苹果电脑怎么切换用户(苹果电脑怎么切换成windows模式)

    苹果电脑怎么切换用户(苹果电脑怎么切换成windows模式)

  • 收藏的视频在哪里看(手机收藏的视频在哪)

    收藏的视频在哪里看(手机收藏的视频在哪)

  • 顺风车还能用吗(顺风车是不是没有了)

    顺风车还能用吗(顺风车是不是没有了)

  • 苹果xr多大尺寸(苹果xr多大尺寸 长宽多少)

    苹果xr多大尺寸(苹果xr多大尺寸 长宽多少)

  • 互相宝是什么(互相宝都保什么)

    互相宝是什么(互相宝都保什么)

  • cad怎么修改比例(cad怎么修改比例尺)

    cad怎么修改比例(cad怎么修改比例尺)

  • qq资料访客记录在哪看(qq访客记录是代表进空间了吗)

    qq资料访客记录在哪看(qq访客记录是代表进空间了吗)

  • 会员svip9什么时候出来(svip9活动)

    会员svip9什么时候出来(svip9活动)

  • ireike.exe - ireike是什么进程 有什么作用

    ireike.exe - ireike是什么进程 有什么作用

  • 维多利亚纪念堂,印度加尔各答 (© Roop_Dey/Shutterstock)(维多利亚国家艺术馆)

    维多利亚纪念堂,印度加尔各答 (© Roop_Dey/Shutterstock)(维多利亚国家艺术馆)

  • Win11 KB5023778更新推送 22621.1485预览版更新内容汇总(win11更新71)

    Win11 KB5023778更新推送 22621.1485预览版更新内容汇总(win11更新71)

  • 资本公积转增资本的要求
  • 专票抵扣进项税可以省钱吗
  • 现金日记账本月合计的红线画法
  • 代缴五险一金自己还需要缴纳吗
  • 小微企业增值税减免账务处理
  • 公司交的物业费入什么科目
  • 自产的不同产品有哪些
  • 合作社收到补贴款如何入账
  • 捐赠的固定资产按什么计价
  • 固定资产清理先提折旧再清理吗
  • 收财务拨款的贷款合法吗
  • 税控盘怎么打票
  • 发票票种核定怎么提交
  • 租赁厂房算什么费用
  • 广告公司需要交消费税吗
  • 兼职教师个人所得税起征点
  • 外币报表折算差额会计分录
  • 发票冲红还需要作废吗
  • 申请办理银行承兑流程
  • 小规模手撕发票申报填在哪
  • 什么是大头小头
  • 缴纳房产税怎么办理登记手续
  • 网络销售平台优势有哪些
  • 权益法核算下的顺流交易
  • 收回已冲销的应收账款分录
  • 在当前目录下打开cmd
  • php tars
  • 设计版权费用
  • 右键菜单里的快捷键
  • php中imagestring
  • 浅析Yii2集成富文本编辑器redactor实例教程
  • 哪些情况下公司不能辞退员工
  • php 计算
  • php示例代码
  • vue企业开发实战
  • gpib-usb驱动
  • php 重写 重载
  • 承包安装工程活怎么接
  • 股东以房产投资公司
  • 给境外公司代扣代缴税款
  • 应收账款提坏账准备的方法
  • sqlserver数据类型转换函数
  • 长期待摊的装修费什么时候入账
  • mysql异常退出
  • 如何查询开出的电子发票
  • 企业增值税的计算
  • 如何降低未分配利润的方法
  • 发票盖错章怎么擦掉
  • 行政事业单位应用方案总账,财务分析
  • 自己开发自己施工
  • 与其他企业联营
  • 其他应收款款项性质如何填写
  • 申报表怎么更正
  • 异地开立分公司条件
  • 本年利润的会计分录
  • sqlserver查看磁盘大小
  • windows98的开始菜单包括了
  • window修复系统
  • windows命令操作
  • windowsserver2008无线网不能连接
  • linux系统设置ntp同步
  • window msconfig
  • 怎么调win7
  • 运维zabbix
  • linux做代理服务器的方法
  • 如何设置windows桌面图标
  • win8系统没有无线网络连接
  • 虚拟机命令cd
  • win7系统找不到蓝牙设备
  • 下列有关javascript中call和apply
  • 批量替换在哪
  • cocos creator读取json
  • 如何使用nodejs
  • javascript create
  • 一般纳税人申请资格条件
  • 地税局是政府部门吗
  • 税务局文化品牌
  • 无房怎么办
  • 税务税率9个点怎么算
  • 宁波个人税务查询网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设