实现类似jQuery的选择器
Opened this issue · 0 comments
LeeJim commented
感觉面试很喜欢出这类的问题啊,那么我就要好好总结一下才行了。
首先抛出问题:
如何实现类似jQuery的$$选择器,比如'#id','.class','[attr=""]',空格。
- 提出思路
- 考虑性能优化
众所周知,id选择器是最快的,所以如果是以#开头,则使用document.getElementById
然后类选择器的话,我的第一直觉是有三个选择:
-
document.querySelector
/document.querySelectorAll
-
document.getElementsByClassName
-
暴力遍历整个DOM树,先序遍历,深度优先去遍历。
分析:
-
document.querySelector
只能支持到IE8,再旧的IE就不支持了。 -
document.getElementsByClassName
只能支持到IE9 -
暴力方法的话,就要看看如何在暴力的同时更快更高效了。
未完待续。。。
参考: