解决方法
在上述评论之后,我决定跟随:
从Chromium源中的Node.cpp
if (strictParsing && inDocument() && querySelectorList.hasOneselector() && querySelectorList.first()->m_match == CSSSelector::Id) { Element* element = document()->getElementById(querySelectorList.first()->m_value); if (element && (isDocumentNode() || element->isDescendantOf(this)) && selectorChecker.checkSelector(querySelectorList.first(),element)) return element; return 0; }
所以它在getElementById上映射,只是解析字符串寻找选择器是一个昂贵的操作.