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

  • 分析下微博营销有哪些可以被大家利用的价值(分析微博营销活动的关键点)

    分析下微博营销有哪些可以被大家利用的价值(分析微博营销活动的关键点)

  • 发帖推广必须注意的重要细节(帖子发布推广)

    发帖推广必须注意的重要细节(帖子发布推广)

  • 暗影精灵4和5的区别(暗影精灵4和5的风扇)

    暗影精灵4和5的区别(暗影精灵4和5的风扇)

  • wifi多频合一(wifi多频合一什么意思)

    wifi多频合一(wifi多频合一什么意思)

  • 苹果手机微信照片怎么不保存到相册(苹果手机微信照相声音消除)

    苹果手机微信照片怎么不保存到相册(苹果手机微信照相声音消除)

  • qq直播间如何退出(qq群直播怎么退出来)

    qq直播间如何退出(qq群直播怎么退出来)

  • 抖音巨量引擎有效果吗(抖音巨量引擎有用吗)

    抖音巨量引擎有效果吗(抖音巨量引擎有用吗)

  • 华为chmul00什么型号(chmtl00华为什么型号多少钱)

    华为chmul00什么型号(chmtl00华为什么型号多少钱)

  • airpods在盒子里不能定位发出声音吗(airpods在盒子里自动连接怎么解决)

    airpods在盒子里不能定位发出声音吗(airpods在盒子里自动连接怎么解决)

  • 手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

    手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

  • 计算器on是什么键(计算器上on表示什么意思)

    计算器on是什么键(计算器上on表示什么意思)

  • 微信群太多怎么全部退出(微信群太多怎么折叠)

    微信群太多怎么全部退出(微信群太多怎么折叠)

  • x27有防水功能吗(vivox27防水性能怎么样)

    x27有防水功能吗(vivox27防水性能怎么样)

  • 苹果7mn开头是什么版本(苹果7型号mng开头什么意思)

    苹果7mn开头是什么版本(苹果7型号mng开头什么意思)

  • pr怎么让滚动字幕定格(pr怎么让滚动字幕停止)

    pr怎么让滚动字幕定格(pr怎么让滚动字幕停止)

  • 微信摇是假人怎么解除(微信摇一摇假人解决方法)

    微信摇是假人怎么解除(微信摇一摇假人解决方法)

  • 微信群踢人别人能看到吗(微信群踢人别人看得到吗)

    微信群踢人别人能看到吗(微信群踢人别人看得到吗)

  • qq怎么解冻七天(qq怎么解冻七天解冻不了)

    qq怎么解冻七天(qq怎么解冻七天解冻不了)

  • 后端返回PDF文件流,前端处理展示及打印(补:PDF多页不显示问题)(后端返回pdf文件地址,前端怎么渲染到页面)

    后端返回PDF文件流,前端处理展示及打印(补:PDF多页不显示问题)(后端返回pdf文件地址,前端怎么渲染到页面)

  • 日落时分正在迁徙的斑纹角马群,肯尼亚马赛马拉野生动物保护区 (© Denis-Huot/Minden Pictures)(日落之前是什么时辰)

    日落时分正在迁徙的斑纹角马群,肯尼亚马赛马拉野生动物保护区 (© Denis-Huot/Minden Pictures)(日落之前是什么时辰)

  • 大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)(c语言设计酒店管理系统)

    大二C#实现酒店管理系统(C端展示、前台操作、登记入住、入住管理、职位管理、公告系统等)(c语言设计酒店管理系统)

  • 进项留抵转出会计分录
  • 一般纳税人转小规模最新政策2022
  • 其他应收款收到发票怎么写会计分录
  • abc类企业是什么意思
  • 暂估材料收到发票后是更正还是红冲
  • 贴现的日期怎么算
  • 年报财务报表在哪里申报
  • 担保人的损失
  • 购入资产的入账价格一般是以该项资产的什么反应
  • 返利回收期怎么计算
  • 工业总产值填报原则
  • 应交税费明细分类账图片
  • 自己承担所有
  • 房产税税率和应纳税额
  • 生育津贴需要缴纳五险一金吗
  • 企业代收代支的非税收入需要缴税吗?
  • 个体户税务年报每年什么时候
  • 利润总额就是会计准则吗
  • 房租费进项税能不能抵扣
  • 收到减免退税费是政府补助怎么记账?
  • 应付职工薪酬借方负数是什么意思
  • 苹果助手hi
  • guest的作用
  • 申请出具商标注意事项
  • 怎么用老毛桃u盘装win7系统 老毛桃u盘装win7系统教程图解
  • 进程mmc.exe
  • 期间费用的含义
  • 京东最贵的商品排行
  • 房地产企业的沙盘模型制作费会计处理
  • 旅行社的会计
  • 工资总额提取福利费
  • php取值
  • vue清空input file的值
  • 计算模型的层次划分
  • ChatGPT全面升级,GPT4支持多模态数据。
  • 探索app下载
  • 微信小程序获取手机号失败
  • 稳岗补贴怎么申请步骤
  • 应交税费如何调整
  • 公司间代收款需要开票吗
  • 简易征收3%的征收率是什么意思
  • 同一控制下收购溢价
  • 账务核对的主要内容
  • SQL Server中的XML数据进行insert、update、delete
  • mongodb添加数据库
  • 小微企业的认定标准企业所得税
  • 小规模纳税人增值税超过30万怎么纳税
  • 所得税退税可以不退吗
  • 企业自有房产的认定标准
  • 暂估成本发票最晚什么时候补齐
  • 福利费发票可以抵扣进项税吗
  • 土地补偿费怎么算
  • 库存商品盘点制度
  • 已抵扣的进项税额转出会计分录账务处理
  • 交易性金融资产属于流动资产
  • 销售出库单需要盖章吗
  • 哪些税金不计入应交税费
  • 固定资产管理需要什么专业
  • 公司怎么变更公司名称
  • 会计审核外来凭证怎么做
  • php中常用的几个字符
  • ubuntu20.04挂载
  • win10系统电脑无法开机怎么办
  • windowsxp桌面没有我的电脑
  • service5.exe - service5是什么进程 有什么用
  • Win10打不开IE浏览器
  • 开启win7
  • perl pop push shift unshift实例介绍
  • 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例,包含自定义事件
  • vue父子组件之间的通讯
  • python递归查找
  • c#委托的理解
  • jQuery插件封装时如要实现链式编程,需要
  • jquery3.3.1
  • android内存占用分析
  • 源码搜索
  • 一般纳税人申请资格条件
  • 投诉政府平台在哪里投诉
  • 日本快递税率
  • 车辆过户给自己家人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设