жаль раньше этого не читал -  Внутреннее устройство поисковых методов
PS: маленький но продуктивный поиск по селекторам
 
sel('div', sel('#root'))
(function(window, document) {
  function classOnly_find(klass, root) { // самый продуктывный поиск по класу, не учитывая getElementsByClassName, взял с yass и модифицировал
    try {
      return root.querySelectorAll('.' + selector)
    } catch (e){}
	klass = ' ' + klass + ' '
    var nodes = root.getElementsByTagName('*'),
      i = 0,
      node,
      sets = [],
      idx = 0
    while (node = nodes[i++]) {
      if ((' ' + node.className + ' ').indexOf(klass) != -1) {
        sets[idx++] = node
      }
    }
    return idx ? sets : []
  }
  function sort_elem(elems) { // сортировка елементов
    return Array.prototype.slice.call(elems)
  }
  window.sel = function(selector, root) {
    var root = root || document,
      elem = 0,
      tmp_selector = 0,
      classOnly = /^\.([\w\-]+)$/,
      idOnly = /^#([\w\-]+)$/,
      tagOnly = /^([\w\-]+)$/
    if (classOnly.test(selector)) {
      tmp_selector = selector.slice(1)
      try {
        elem = root.getElementsByClassName(tmp_selector)
        return elem.length ? sort_elem(elem) : []
      } catch (e) {
        return sort_elem(classOnly_find(tmp_selector, root))
      }
    }
    if (idOnly.test(selector)) {
      tmp_selector = selector.slice(1)
      elem = [root.getElementById(tmp_selector)]
      return elem.length ? sort_elem(elem) : []
    }
    if (tagOnly.test(selector)) {
      elem = root.getElementsByTagName(selector)
      return elem.length ? sort_elem(elem) : []
    }
    elem = root.querySelectorAll(selector)
    return elem.length ? sort_elem(elem) : []
  }
})(window, document)
 
	 |