getElementsByClassName 兼容性

getElementsByClassName是html5 新增加的一个类名。该方法可以让我们通过class属性中的类名来访问元素。不过该方法比较新,某些DOM树还没有,因此在使用中要当心。由于只有较新的浏览器支持,为了弥补这一不足,可以使用已有的DOM方法来实现自己的getElementsByClassName.下边这个函数使用各种新老浏览器。
 小提示:
getElementById--------------       id是单选的,是getElement
getElementsByClassName-----\     是可以复用的,是getElements
getElementsByTagName-------/
DOM树中最常用的三个获取元素的方法,前边的getElement是不同的。记着呦~~
/*node 是dom树的搜索起点  classname 是要搜索的类名*/
function getElementsByClassName(node,classname){
    if(node.getElementsByClassName){
        return node.getElementsByClassName(classname);
    }else{
        var results = new Array();
        var elems = node.getElementsByTagName("*");
        for(var i=0;i<elems.length;i++){
            console.log(elems[i].ClassName);
            if(elems[i].ClassName.indexOf(classname)!=-1){
                results[results.length] = elems[i];
            }
        }
        return results;
    }
}
/*用法*/
var shopping = document.getElementById(‘shop‘);
var shoplist = getElementsByClassName(shoplist,‘list‘);

/*如果不知道id,id全局dom搜索的话*/
getElementsByClassName(document,‘list‘);

使用方法

html

       <ul class="clear home-footer">
              <li class="item">
                    <a href="index.html">
                        <p class="name" style="font-size: 16px;">租赁流程</p>
                    </a>
                </li>
                <li class="item">
                    <a href="apply.html">
                        <p class="name">预订须知</p>
                    </a>
                </li>
                <li class="item">
                    <a href="javascript:void(0);">
                        <p class="name">服务网点</p>
                    </a>
                </li>
                <li class="item item-mb">
                    <a href="rank.html">
                        <p class="name">用户反馈</p>
                    </a>
                </li>
            </ul>
  <script>
   var re_node = getElementsByClassName(document,‘name‘);
     for(var j=0;j<re_node.length;j++){
      var rec_style = re_node[j].innerText;
      console.log(rec_style);
   }
 </script>

结果截图如下:

时间: 2024-11-29 12:03:15

getElementsByClassName 兼容性的相关文章

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

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

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

框架封装

如果不使用框架,给页面的标签设置样式document.getElementsByTagName("div");或者var dvs = document.querySelectorAll("div"),for(var i = 0; i < dvs.length; i++) { dvs[i].style.border = "1px dotted blue"; }这样写有很多缺点1.一个页面会有很多变量,造成全局变量污染2.代码冗余 3.无法复

JS DOM操作(创建、遍历、获取、操作、删除节点)

创建节点 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devic

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

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

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

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

兼容性比较好的getElementsByClassName函数

 //兼容性比较好的方法,适合新老浏览器 P42 function getElementsByClassName(node,calssname){  //function getElementsByClassName(shopping,"sale") if(node.getElementsByClassName) //使用现有方法 { return node.ggetElementsByClassName(calssname); }else{ var results = new Arr

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

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

getElementsByClassName的兼容性

/*----------------------------index.html------------------------------------*/ <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="Author" con