1. 程式人生 > >使用document.getElementsByClassName 老版本IE9以前的版本相容

使用document.getElementsByClassName 老版本IE9以前的版本相容

/**
* 根據類名查詢元素,解決瀏覽器相容問題
* @param className <String> 待查詢的類名
* @return 返回查詢到的元素集合
*/
function byClass(className) {
  if (document.getElementsByClassName) // 支援使用
  return document.getElementsByClassName(className);

/* 不支援使用 getElementsByClassName() 方法,解決相容 */
// 定義儲存結果的陣列
  var result = [];
// 根據標籤名查詢所有元素
  var elements = document.getElementsByTagName("*");
// 遍歷每個元素
  for (var i = 0, len = elements.length; i < len; i++) {
// 當前遍歷到元素的所有類名
    var classNames = elements[i].className.split(" ");
// 遍歷當前元素的類名
    for (var j = 0, l = classNames.length; j < l; j++) {
// 判斷當前遍歷到的類名是否與待查詢元素的類名一致
      if (classNames[j] === className) {
// 一致,則說明當前遍歷到的元素是待查找出元素其中之一
        result.push(elements[i]);
        break;
      }
    }
  }
// 返回查詢到的結果
  return result;
}