zoukankan      html  css  js  c++  java
  • javascript之querySelector和querySelectorAll

    其实关于querySelector和querySelectorAll的介绍说明很多。

    在此主要是做个记录。

    一开始很多人都会拿jquery的选择器来跟这两个api做对比(我也是),比较异同本来没事,但却使一些同学对这两个api在浏览器中的实现产生了误解,特别是再dom element上调用此api时。

    下面是我的jsFiddle示例,我就以此展开说明:

    误解就在于对$('inner').querySelectorAll('#main h4.inside')的实现理解,不少人一开始几乎都认为是直接从div[id='inner']的孩子中进行查找(我也是),这个#main有点碍眼。实际上它还是根据selector string从整个document上查找,再返回属于div[id='inner']的子节点。很多人会疑惑,那么为什么不按照直接按父节点找子节点的方式来实现呢?就像elem.getElementsByTagName,我的想法是灵活selector string吧。

    querySelector只返回匹配的第一个元素,如果没有匹配项,返回null。

    querySelectorAll返回匹配的元素集合,如果没有匹配项,返回空的nodelist(节点数组)。

    并且返回的结果是静态的,之后对document结构的改变不会影响到之前取到的结果。

    目前IE8+,ff,chrome都支持此api(IE8中的selector string只支持css2.1的)。

  • 相关阅读:
    Bzoj4873 [SXOI2017]寿司餐厅
    Bzoj4870 [SXOI2017]组合数问题
    Bzoj4820 [Sdoi2017]硬币游戏
    Bzoj4816 [Sdoi2017]数字表格
    HDU2089 不要62
    Python——lambda函数
    Django——在线教育项目总结
    Django项目——CRM
    数据库——MongoDB的安装
    母猪的产后护理——一些零碎的知识
  • 原文地址:https://www.cnblogs.com/AndyWithPassion/p/javascript_querySelector_querySelectorAll.html
Copyright © 2011-2022 走看看