码迷,mamicode.com
首页 > 其他好文 > 详细

如何根据元素的className获取元素?

时间:2016-12-28 18:48:08      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:.class   document   exp   code   get   支持   页面   api   影响   

getElementsByClassName()是HTML5 新增的DOM API。IE8以下不支持
  我们知道,原生的方法,是getElementById()和getElementsByTagName(),这两个不会有兼容问题,但是遇到class的问题还是没法解决。所以这里总结两种封装方法,可以用它们来获取指定的class元素。当然,对于现代浏览器开发,还可以使用querySelector()和querySelectorAll(),他们的功能更加强大。

1.数组遍历的方法:

function getByClass(sClass,oParent){      
      var parent = oParent || document;
      var aEles = parent.getElementsByTagName(‘*‘);
      var arr = [];
      
      for(var i=0; i<aEles.length; i++){
          
          var aClass = aEles[i].className.split(‘ ‘);
         
         for(var j=0; j<aClass.length; j++){
             if(aClass[j] == sClass){
             
                 arr.push(aEles[i]);
             }    
         }
     }
     return arr;
}

2.正则匹配的方法:

function getElementsByClassName(oParent, sClass){
    var aEle = oParent.getElemnetsByTagName(‘*‘);
    var result = [];
    var re = new RegExp(‘\\b‘ + sClass + ‘\\b‘, ‘i‘);
    
    for(var i=0; i<aEle.length; i++){
        if(re.test(aEle[i].className)){
            result.push(aEle);    
        }    
    }
    return result;
}

最后,值得一提是,前端页面实现中,性能的影响往往出现在DOM的操作中。此外,还要注意元素的回流和重绘问题。

摘自:http://www.cnblogs.com/zhangxiaohang/p/5523157.html

如何根据元素的className获取元素?

标签:.class   document   exp   code   get   支持   页面   api   影响   

原文地址:http://www.cnblogs.com/hjbky/p/6230074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!