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

  • vivox70pro怎么拍月亮(vivox70pro怎么拍log模式)

    vivox70pro怎么拍月亮(vivox70pro怎么拍log模式)

  • 淘宝显示用户信息开关在哪里(淘宝显示用户信用双零什么意思)

    淘宝显示用户信息开关在哪里(淘宝显示用户信用双零什么意思)

  • 苹果耳机模式怎么改为正常模式(苹果耳机模式怎么调)

    苹果耳机模式怎么改为正常模式(苹果耳机模式怎么调)

  • 苹果手表国行和美版的区别在哪里(苹果手表国行和美版哪个好)

    苹果手表国行和美版的区别在哪里(苹果手表国行和美版哪个好)

  • nfc读取不了id卡怎么办(nfc读不到id门禁卡)

    nfc读取不了id卡怎么办(nfc读不到id门禁卡)

  • 苹果6视频没有声音怎么回事(苹果6视频没有美颜功能)

    苹果6视频没有声音怎么回事(苹果6视频没有美颜功能)

  • 淘宝介入处理时间一般是多久(淘宝介入处理时效多久)

    淘宝介入处理时间一般是多久(淘宝介入处理时效多久)

  • 苹果自动跳出滑动关机(苹果手机老是滑出)

    苹果自动跳出滑动关机(苹果手机老是滑出)

  • 苹果7更新系统后不能开机(苹果7更新系统后白苹果怎么办)

    苹果7更新系统后不能开机(苹果7更新系统后白苹果怎么办)

  • mp2g2ch/a是ipad几代(ipad mp2g2ch/a是什么)

    mp2g2ch/a是ipad几代(ipad mp2g2ch/a是什么)

  • powerpoint怎么设置艺术字形状(powerpoint怎么设置主题)

    powerpoint怎么设置艺术字形状(powerpoint怎么设置主题)

  • 什么是开发界(开发是什么行业)

    什么是开发界(开发是什么行业)

  • 苹果怎么开启暗黑模式(苹果怎么设置暗夜模式开关)

    苹果怎么开启暗黑模式(苹果怎么设置暗夜模式开关)

  • 苹果8p怎么会自动亮屏(苹果8P怎么会自动断网)

    苹果8p怎么会自动亮屏(苹果8P怎么会自动断网)

  • 魅族16th有快充吗(魅族16th快充多少w)

    魅族16th有快充吗(魅族16th快充多少w)

  • 手机上怎么下载歌曲(手机上怎么下载steam)

    手机上怎么下载歌曲(手机上怎么下载steam)

  • 滴滴怎么查看乘客投诉(滴滴怎么查看乘车路径)

    滴滴怎么查看乘客投诉(滴滴怎么查看乘车路径)

  • 快手里的相片怎么删除(快手里的相片怎么保存)

    快手里的相片怎么删除(快手里的相片怎么保存)

  • WINCC调试器会不会影响程序(wincc脚本调用模板)

    WINCC调试器会不会影响程序(wincc脚本调用模板)

  • 苹果望远镜怎么点出来(苹果望远镜功能如何使用)

    苹果望远镜怎么点出来(苹果望远镜功能如何使用)

  • word三线表格怎么制作(word三线表格怎么设置线宽)

    word三线表格怎么制作(word三线表格怎么设置线宽)

  • 手机被挖矿如何解除(手机被拿去挖矿)

    手机被挖矿如何解除(手机被拿去挖矿)

  • 老年机来电话听不到声音(老年机电话听不到对方声音是什么原因)

    老年机来电话听不到声音(老年机电话听不到对方声音是什么原因)

  • 在dedecms织梦添加自制的背景图片(织梦怎么建站)

    在dedecms织梦添加自制的背景图片(织梦怎么建站)

  • 附加税的内容有哪些
  • 招标押金如何做账务处理?
  • 资产负债表其他流动资产包括什么
  • 公转法人交税
  • 房产税的原值是如何确定的
  • 销项抵扣需要缴纳城建税吗
  • 个体工商户不经营会自动注销吗
  • 资产负债率计算方式
  • 使用空头支票被银行冻结
  • 工会经费滞纳金税率
  • 企业利润分配如何分析
  • 企业向职工发放的奖金属于
  • 旧房转让土地增值税核定
  • 租金收入发票税目
  • 工程承包付款最佳方式
  • 减少子公司合并的风险
  • 注册表怎么启动
  • php日期差
  • 增值税进项税抵扣销项税
  • 公司股东转账进公司账户,会计分录
  • 印花税和所得税需要计提吗
  • 投资性房地产出售时其他综合收益
  • 出差午餐补助公职出差
  • 应收账款清查采用实地盘点法
  • 企业缴纳职工社保比例的规定
  • 生产车间领用工具
  • 帝国cms适合建什么站
  • 差旅费的进项税额需要转出吗
  • 认缴倒闭无力实缴强制执行
  • 保险费计入固定资产原值吗
  • php底部导航代码
  • MySQL的LEFT JOIN表连接的进阶学习教程
  • 股东撤资要交什么税
  • 企业所得税年报更正申报怎么操作
  • 航天信息发票怎么抵扣
  • 申报的财务报表在哪里查询
  • 2020年小规模纳税人增值税政策
  • 使用SQL server创建数据库和表
  • centos php-fpm
  • 欠款在公司注销怎么处理
  • 固定资产盘亏所得税清算时怎么处理
  • 什么混合销售
  • 工程预付款是否含规费和税金
  • 多交的应交税费资产负债表怎么填
  • 火车票退票改签手续费
  • 净利润增长率计算方式
  • 已认证抵扣增值税怎么撤回申报
  • 购买超市购物卡有优惠吗
  • 普通发票作废的保存几年合理
  • 新担保法2021和担保期限
  • 无形资产计提折旧可以转回吗
  • 发票金额大于付款金额可以报销吗
  • 借主营业务成本贷库存商品什么意思
  • 应收账款折率
  • 债权人接受债务怎么处理
  • mysql5.7.19 winx64解压缩版安装配置教程
  • linux命令合集
  • ubuntu18.04网络
  • spkrmon.exe - spkrmon是什么进程
  • vmware下载不了
  • win8磁盘分区合并
  • kprcycleaner.exe是什么
  • win7开机一直显示配置windows请勿关机怎么办
  • win8系统特点
  • win7指令代码
  • windows右键不能用了
  • cocos2dx schedule
  • javascript中常见的数据类型有哪些?
  • unity jsonutility 数组
  • shell 算数计算
  • js alert()
  • Node.js中的http请求客户端示例(request client)
  • android应用程序
  • javascript完整代码
  • javascript中数组的方法
  • 死循环代码
  • jquery自定义组件
  • wxpython中Textctrl回车事件无效的解决方法
  • 湖北生育登记网上服务大厅官网查询
  • 福建省税务报税系统官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设