Ruby's Louvre

每天学习一点点算法

导航

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;
};

posted on 2011-01-21 00:43  司徒正美  阅读(1136)  评论(1编辑  收藏  举报