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

原文地址:https://www.cnblogs.com/kdiekdio/p/10223879.html

时间: 2024-08-02 10:50:54

使用document.getElementsByClassName 老版本IE9以前的版本兼容的相关文章

ie8及其以下浏览器的document.getElementsByClassName兼容性问题

Google Chrome.Firefox.Opera.Safari.IE9及更新版本都支持javascript的document.getElementsByClassName函数,而IE6 IE7 IE8不支持document.getElementsByClassName,我们只能自己给document增加一个自定义函数getElementsByClassName,让IE 6-8也支持document.getElementsByClassName 以下是IE6 IE7 IE8 document

IE9及以下版本获取上传文件的大小

IE9及以下版本不能识别files属性:获取图片需要设置浏览器 打开IE_工具_internet选项_安全_自定义级别. 启用ActiveX,开启跨域: var fso=new ActiveXobject("Scripting.FileSystemObject"); file.select(); file.blur(); var filePath=document.selection.createRange().text; var file=fso.GetFile(filePath);

解决 IE 或者兼容模式不支持 document.getElementsByClassName() 的方法

网页错误详细信息消息: 对象不支持此属性或方法 document.getElementsByClassName('element_name') 需要自己实现下该方法,因为ie5之前的版本并不支持这个方法 有以下四种方法,第四种兼容性最好 一. //create method getElementsByClassName for document if(!document.getElementsByClassName){ document.getElementsByClassName = func

javascript中document.getElementsByClassName兼容性封装方法一

var getElmsByClsName = function(className, results) { results = results || []; // 判断浏览器是否支持 getElementsByClassName if(document.getElementsByClassName) { // 浏览器支持这个方法 results.push.apply( results, document.getElementsByClassName(className) ); } else {

原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题

原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用. 修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法. 代码如下: 原来方法: document.getElementsByClassName('tabs_div'): 这里的调用方法为:getClassNames('tabs_div' , 'div'): var divs = getClassNames('tabs_div' , 'div'); fun

Chrome桌面提醒功能,兼容新老版本,firefox最新版本也通过

Chrome新版升级api,与w3一致,为了兼容,代码如下: //桌面提醒 function notify(title, content) { if(!title && !content){ title = "桌面提醒"; content = "您看到此条信息桌面提醒设置成功"; } var iconUrl = "/images/send_ok.png"; if (window.webkitNotifications) { //c

解决 IE 不支持 document.getElementsByClassName() 的方法

//create method getElementsByClassName for document if(!document.getElementsByClassName){ document.getElementsByClassName = function(className, element){ var children = (element || document).getElementsByTagName('*'); var elements = new Array(); for

document.getElementsByClassName在ie8及其以下浏览器的兼容性问题

原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用. 修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法. 代码如下: 原来方法: document.getElementsByClassName('tabs_div'): 这里的调用方法为:getClassNames('tabs_div' , 'div'): var  divs = getClassNames('tabs_div' , 'div'); fu

兼容ie5-ie11及其他主流浏览器的js document.getElementsByClassName 方法

var getElementsByClassName = function(searchClass,node,tag) { if(document.getElementsByClassName){ return document.getElementsByClassName(searchClass) }else{ node = node || document; tag = tag || '*'; var returnElements = [] var els = (tag === "*&quo