IE8以下不支持getElementsByClassName方法

 1 function getElementsByClassName(classStr,tagName,element){
 2     tagName = (tagName || ‘*‘);
 3     element = (element || document);
 4
 5     if(typeof tagName == ‘object‘){
 6         element = tagName; tagName = ‘*‘;
 7     }
 8
 9     if(document.getElementsByClassName){
10         return element.getElementsByClassName(classStr);
11     }else{
12         var nodes = element.getElementsByTagName(tagName),
13             ret = [];
14         for(i = 0; i < nodes.length; i++) {
15             if(hasClass(nodes[i],classStr)) ret.push(nodes[i]);
16         }
17         return ret;
18     }
19
20     function hasClass(tagStr,classStr){
21         var arr=tagStr.className.split(/\s+/ ); //这个正则表达式是因为class可以有多个,判断是否包含
22         for (var i=0;i<arr.length;i++){
23             if (arr[i]==classStr) return true;
24         }
25         return false;
26     };
27 };
时间: 2024-08-06 03:45:37

IE8以下不支持getElementsByClassName方法的相关文章

IE8数组不支持indexOf方法的解决办法

在使用indexof方法之前加上以下代码就可以了. if (!Array.prototype.indexOf){           Array.prototype.indexOf = function(elt /*, from*/){           var len = this.length >>> 0;           var from = Number(arguments[1]) || 0;           from = (from < 0)          

兼容IE的getElementsByClassName()方法

兼容IE8及以下的getElementsByClassName()方法 1 2 function getElementsByClassName = function(className, tagName) { 3 //如果浏览器支持getElementsByClassName()就直接返回 4 if(document.getElementsByClassName){ 5 return document.getElementsByClassName(className) 6 } 7 //否则遍历d

解决ie8(及其以下)不支持getElementsByClassName的问题

这是我的第1篇技术笔记,与大家分享的是:解决IE8(及以下)不支持getElementsByClassName的方法.如果有说错的地方,麻烦留言告诉我,我及时更正,一来是更新一下我的认知,二来也是不要误导的他人,谢谢. 我们在给元素设置样式的时候,可以说用的最多的就是类(class)了.遗憾的是在低版本IE浏览器(IE8及其以下版本)中,我们不能用getElementsByClassName,因为IE没有为document对象添加这个方法. // IE8及其以下版本中 这个结果是falsecon

关于IE8及其以下的IE版本不支持getElementsByClassName

之前做一下项目的时候知道IE8以及其以下的版本不支持getElementsByClassName,于是乎自己写了一个函数重新定义getElementsByClassName,函数代码如下: function getElementsByClassName(classname){ if(document.getElementsByClassName){ return document.getElementsByClassName(classname); }else{ var aa = documen

解决对象不支持“getElementsByClassName”属性或方法 ie兼容性

  解决 IE 或者兼容模式不支持 document.getElementsByClassName() 的方法 自已实现document.getElementsByClassName(): 网页错误详细信息消息: 对象不支持此属性或方法 document.getElementsByClassName('element_name') 需要自己实现下该方法,因为ie5之前的版本并不支持这个方法 有以下四种方法,第四种兼容性最好  一. [javascript] view plaincopy   //

getElementsByClassName 方法兼容性封装方法二

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

如何让ie9.0以下的浏览器支持getElementsByClassName

/** * node是表示dom树的搜索起点,Classname是需要搜索的类名. * 如果传入的节点上已经存在了适当的getElementsByClassName,就直接返回相应的节点列表 * 如果不支持该方法,新函数会遍历所有的标签,查找相应的类名的元素 * */ function getElementsByClassName(node, Classname){ if(node.getElementsByClassName){ //使用新方法 return node.getElementsB

ie不支持getElementsByClassName的解决办法

目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管:如果不支持,就在document对象里加入getElementsByClassName这个方法,按兴趣的朋友可以了解下 if (navigator.appName == 'Microsoft Internet Explorer') { document.getElementsByClassName = function() { var tTagName = "*"; if (arguments.length > 1)

[转]CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法

CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法 2013-12-12  By 奥夫 关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对… 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !impo