getElementsByTagName

DC大神为早期不支持getElementsByTagName的浏览器写的hack,当然与原生的不能同日而言,原生的用到缓存机制呢。

function getElementsByTagName(node, tagName) {
  var elements = [], i = 0, anyTag = tagName === "*", next = node.firstChild;
  while ((node = next)) {
    if (anyTag ? node.nodeType === 1 : node.nodeName === tagName) elements[i++] = node;
    next = node.firstChild || node.nextSibling;
    while (!next && (node = node.parentNode)) next = node.nextSibling;
  }
  return elements;
};
原文地址:https://www.cnblogs.com/rubylouvre/p/1940745.html