网页错误详细信息
消息: 对象不支持此属性或方法

document.getElementsByClassName('element_name')

需要自己实现下该方法,因为ie5之前的版本并不支持这个方法

有以下四种方法,第四种兼容性最好

 一、

  1. //create method getElementsByClassName for document
  2. if(!document.getElementsByClassName){
  3. document.getElementsByClassName = function(className, element){
  4. var children = (element || document).getElementsByTagName('*');
  5. var elements = new Array();
  6. for (var i=0; i<children.length; i++){
  7. var child = children[i];
  8. var classNames = child.className.split(' ');
  9. for (var j=0; j<classNames.length; j++){
  10. if (classNames[j] == className){
  11. elements.push(child);
  12. break;
  13. }
  14. }
  15. }
  16. return elements;
  17. };
  18. }

  二、

  1. function getElementsByClassName(oElm, strTagName, strClassName){
  2. var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
  3. oElm.getElementsByTagName(strTagName);
  4. var arrReturnElements = new Array();
  5. strClassName = strClassName.replace(/\-/g, "\\-");
  6. var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  7. var oElement;
  8. for(var i=0; i < arrElements.length; i++){
  9. oElement = arrElements[i];
  10. if(oRegExp.test(oElement.className)){
  11. arrReturnElements.push(oElement);
  12. }
  13. }
  14. return (arrReturnElements)
  15. }

   三、

  1. var getElementsByClass = function(searchClass,node,tag) {
  2. var classElements = new Array();
  3. if ( node == null )
  4. node = document;
  5. if ( tag == null )
  6. tag = '*';
  7. var els = node.getElementsByTagName(tag);
  8. var elsLen = els.length;
  9. var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  10. for (i = 0, j = 0; i < elsLen; i++) {
  11. if ( pattern.test(els[i].className) ) {
  12. classElements[j] = els[i];
  13. j++;
  14. }
  15. }
  16. return classElements;
  17. }

四、

  1. var getElementsByClassName = function (searchClass, node,tag) {
  2. if(document.getElementsByClassName){
  3. var nodes = (node || document).getElementsByClassName(searchClass),result = [];
  4. for(var i=0 ;node = nodes[i++];){
  5. if(tag !== "*" && node.tagName === tag.toUpperCase()){
  6. result.push(node)
  7. }
  8. }
  9. return result
  10. }else{
  11. node = node || document;
  12. tag = tag || "*";
  13. var classes = searchClass.split(" "),
  14. elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag),
  15. patterns = [],
  16. current,
  17. match;
  18. var i = classes.length;
  19. while(--i >= 0){
  20. patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));
  21. }
  22. var j = elements.length;
  23. while(--j >= 0){
  24. current = elements[j];
  25. match = false;
  26. for(var k=0, kl=patterns.length; k<kl; k++){
  27. match = patterns[k].test(current.className);
  28. if (!match) break;
  29. }
  30. if (match) result.push(current);
  31. }
  32. return result;
  33. }
  34. }

解决对象不支持“getElementsByClassName”属性或方法 ie兼容性的更多相关文章

  1. 对象不支持“attachEvent”属性或方法的解决办法

    有些脚本在IE11下执行会报错误: 对象不支持“attachEvent”属性或方法 解决办法 解决办法:把attachEvent改为addEventListener即可

  2. 解决IE10以下对象不支持“bind”属性或方法

    IE10一下的浏览器,如果在JS代码中用了bind函数,那么就会报“SCRIPT438: 对象不支持“bind”属性或方法” 因为浏览器没有提供这个参数的方法,所以我们就自己写一个bind,来让这个参 ...

  3. IE显示对象不支持此属性或方法 的解决方法

    用C# 编写的ActiveX控件, 调试时,在世界之窗浏览器里能正确显示,但是不能和JS交互,也没有传说中的错误信息框出现,查了很多文档,后来想问题是不是出在浏览器上,换在IE8里调试,点击交互按钮, ...

  4. 关于使用jquery时,ie8下提示对象不支持的属性或方法的解决办法

    转自:http://wapapp.baidu.com/auoong/item/538790fcbe87c834d7ff8cde 首先这个问题的前提是已经排除了常见的这个问题.下面说一种今天我碰到的一种 ...

  5. js错误:对象不支持此属性或方法

    对象不支持此属性或方法 错误原因: 可能是js的文件名和另外一个文件重复. 也有可能是js里的function和另外一个function名字重复. 也有可能是js里的function和页面的某一元素重 ...

  6. jQuery 报错,对象不支持tolowercase属性或方法

    泪流满面.<input>里id和name都不能是nodeName,否则跟jquery.js冲突 JQuery 实践问题 - toLowerCase 错误 在应用JQuery+easyui开 ...

  7. ie8兼容:对象不支持“trim”属性或方法

    trim() 方法是原生js中去空格的方法,高版本浏览器已经默认支持trim() 方法,但ie8以下不支持,会报错:对象不支持“trim”属性或方法 解决这个的兼容,只需要扩展String原型属性 在 ...

  8. jQ:"对象不支持“first”属性或方法"IE内核下不兼容first()、chilrdren()方法的处理

    场景:需要查找某元素下的第一个子集,使用了如下语句: $("#left_1>tbody").find(".menuTr").first().addClas ...

  9. IE下全局对象报 脚本错误提示“对象不支持此属性或方法”解决方案

    原来是IE会把页面中的元素id可以直接当变量名一样使用,但是这个id变量不能被赋值. 例如: <body id='body'> <script type="text/jav ...

随机推荐

  1. 【POJ2104】K-th Number(主席树)

    题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=1 ...

  2. 【BZOJ1001】狼抓兔子(平面图最小割转最短路)

    题意:有一张平面图,求它的最小割.N,M.表示网格的大小,N,M均小于等于1000. 左上角点为(1,1),右下角点为(N,M).有以下三种类型的道路  1:(x,y)<==>(x+1,y ...

  3. Cryptography I 学习笔记 --- 绪论

    课程地址 1. 密码学可以用于保证消息传递的机密性(第三方不可能得到明文)与完整性(密文如果被第三方篡改,有手段可以检测到) 2. 数字签名(用私钥加密待签名文件的hash值) 3. 匿名通信(mix ...

  4. 拼题 L2-001 紧急救援 最短路计数+记录路径

    https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 L2-001 紧急救援 (25 分)   作 ...

  5. 仓鼠找sugar(lca)

    洛谷——P3398 仓鼠找sugar 题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅( ...

  6. error错误信息状态码含义

    XMLHttpRequest.status: 200:成功. 401:拒绝访问. 403:禁止访问. 404:找不到. 405:方法不被允许. 407:要求进行代理身份验证. 500:内部服务器错误. ...

  7. MySql----on duplicate key

    mysql on duplicate key 语句是解决key 冲突的问题,同时 ,key 包括 primary key 和 unique key 等

  8. putnik

    可将旅行商的路线看作是从n - 1号点出发, 跳着到0号点, 再折返走完之前跳过的点. 想到这个, 暴力就可以得50分. 正解是DP. f[i][j](i > j)表示, 从i开始跳, 并返回至 ...

  9. soursTree新建过程.md

    网上博客 https://www.cnblogs.com/tian-xie/p/6264104.html 主要的推送流程 完成所有项目的远程推送工作 点击git工作流选择第二个建立新的版本; 输入发布 ...

  10. IOS开发之----两种保存用户名和密码实现记住密码库

    使用Keychain存储用户敏感信息 iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储.相对于 NSUserDe ...