IE6 不支援 getElementsByClassName 解決辦法

FB 上看到朋友分享的順手轉貼。( 話說現在還用IE6 的應該很少了吧 )
所以要自己定義該方法,程式碼如下:

fixIE6getElementsByClassName.js
if (!document.getElementsByClassName) { // 若不存在 getElementsByClassName 方法則進入控制流

  document.getElementsByClassName = function (className, element) {
    var children = (element || document).getElementsByTagName('*');
    var elements = new Array();
    
    for (var i = 0; i < children.length; i ++) { // 逐一檢視抓取的元素

      var child = children[i];
      var classNames = child.className.split(' '); // class間會以空白間隔,故根據空白切割產生陣列

      
      for (var j = 0; j < classNames.length; j ++) { // 逐一比對 class 名稱

        if (classNames[j] === className) { // 若 class 名稱相符,將其置入回傳之陣列中,並且跳脫此迴圈

            elements.push(child);
            break;
        }
      }
    } 

    return elements; // 回傳取得的元素

  };
}

Comments

comments powered by Disqus