zoukankan      html  css  js  c++  java
  • JavaScript 中document.getElementsByClassName() 在ie8以下不兼容问题

    JavaScript中获取元素document.getElementsByClassName()在IE8以下不兼容 

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            window.onload = function () {
                var li = document.getElementsByClassName('cla');
                console.log(li);
            }
        </script>
    </head>
    
    <body>
        <div id="div1">
            <ul>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
                <li class="cla">abc</li>
                <li class="cla2">abc</li>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
            </ul>
        </div>
    </body>
    
    </html>

    可以自己定义方法来兼容IE浏览器

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            window.onload = function () {
                /* var li = document.getElementsByClassName('cla');
                console.log(li); */
                var node = document.getElementById('div1');
                var ele = getElementsByClassNameUserDefined(node,'cla');
                for (var i = 0; i < ele.length; i++) {
                    ele[i].style.color = 'red';
                    
                }
            }
    
            /*
                自定义兼容ie浏览器的方法
                @param node 要获取哪些元素下的class
                @param className 类名
             */ 
            function getElementsByClassNameUserDefined(node, className){
                // 获取元素下的所有标签
                var eleList = node.getElementsByTagName('*');
                var arr = [];
                // 循环遍历所有标签,当标签的className等于传入的className时放入数组
                for(var i = 0; i < eleList.length; i++) {
                    if (eleList[i].className == className) {
                        arr.push(eleList[i]);
                    }
                }
                return arr;
            }
        </script>
    </head>
    
    <body>
        <div id="div1">
            <ul>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
                <li class="cla">abc</li>
                <li class="cla2">abc</li>
                <li class="cla">abc</li>
                <li class="cla1">abc</li>
            </ul>
        </div>
    </body>
    
    </html>

    效果:

  • 相关阅读:
    CSS魔法堂:选择器及其优先级
    HTML5 placeholder实际应用经验分享及拓展
    WEBAPP开发技巧(手机网站开发注意事项)
    PhotoShop的10大误区
    django之搜索引擎功能实现
    django之使用git协作开发项目
    docker简单操作
    docker之container eb7a144fe8ce is using its referenced image 9b9cb95443b5
    django之动态轮播图技术的实现
    django之Model(数据表)的增删改查
  • 原文地址:https://www.cnblogs.com/lxhyty/p/14420794.html
Copyright © 2011-2022 走看看