document.querySelector是如何实现的?

Luk*_*uke 10 javascript browser algorithm tree dom

我想这个问题的答案取决于你使用的浏览器,但我想这只会让它变得更有趣.

我想知道该querySelector()方法是如何实际实现的.同样,我很好奇querySelectorAll()和其他方法,如getElementById()getElementByClassName()等.

它是深度优先搜索,广度优先搜索,还是利用一些辅助数据结构,如全局哈希表作为注册表?

Jar*_*a X 5

您要求的所有信息都在您提供的链接中:

querySelector:返回文档中的第一个元素(使用文档节点的深度优先预先遍历遍历 |文档标记中的第一个元素,并按照子节点数量的顺序迭代顺序节点)与指定的选择器组匹配.


querySelectorAll:返回文档(使用中的元素的列表深度优先前序遍历匹配选择器的指定组,该文件的节点).返回的对象是NodeList.


getElementById:返回元素的ID引用; ID是一个字符串,可用于标识元素; 它可以使用HTML中的id属性或脚本来建立.

因为ID应该是唯一的 - 不存在订单问题


getElementsByClassName:返回具有所有给定类名的所有子元素的类数组对象.在文档对象上调用时,将搜索完整文档,包括根节点.您也可以在任何元素上调用getElementsByClassName(); 它将仅返回具有给定类名的指定根元素的后代的元素.