我知道querySelectorAll('p') 是静态的,getElementsByTag('p') 是动态的,querySelectorAll('p') 感觉和 jquery的 $有点相似,querySelectorAll('p')代码内部有没有使用getElementsByTag('p') ?
什么时候使用querySelectorAll('p')?
什么时候使用getElementsByTag('p') ?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我一般都用
querySelectorAll,因为选择器书写起来方便,并且性能也不错。然后,除非有奇怪的兼容需求,比如兼容IE7啊之类的,不然我不会用
getElementsByTag。我的使用考虑是兼容性考虑,然后就是现代api优先使用。
只选择 p 标签的话建议用
getElementsByTag('p')因为速度快(而且兼容低版本浏览器),querySelectorAll()可以查找所有的选择器(比较强大),querySelector语法是H5中对dom的规范api,getElementByTagName是前一版本的dom规范。
如果你的浏览器支持h5,用前面的就行了,如果是老版本浏览器,用后面的写法。
h5对dom很多私有扩展做出了统一规范,在现代浏览器中可以直接使用了
querySelectorAll('p')使用的是css选择器的方式获取元素,它会访问完所有节点信息再得倒所选节点,所以比getElementsByTagName('p')慢,既然知道它是静态而getElementsByTagName('p')是动态的,我想对什么时候使用这两者没什么问题才对。
querySelectorAll支持大部分的jquery选择器,功能强大,但兼容性ie10+
getElementsByTagName只支持标签选择器,功能弱,兼容ie6+
自己选吧