JavaScript优化:编写高性能DOM选择器,支持id、class和tagName筛选

11 min read

可以使用querySelectorAll()方法实现选择器的匹配,根据输入的选择器类型使用不同的dom方法进行选择器匹配:

function getElements(selector) {
  let selectorType = selector.charAt(0),
      selectorValue = selector.substring(1);

  switch(selectorType) {
    case '#':
      return document.querySelectorAll(`[id='${selectorValue}']`);
    case '.':
      return document.querySelectorAll(`[class*='${selectorValue}']`);
    default:
      return document.querySelectorAll(selector);
  }
}

上述方法中使用了querySelectorAll()方法进行选择器匹配,同时可以通过传入不同类型的选择器来匹配对应的DOM元素,这样可以提高选择器匹配的灵活性和性能。