解决getElementsByClassName在IE8之前无法使用的问题

    xiaoxiao2021-11-22  38

    昨天在看视频的时候,发现有个老师说了getElementsByClassName这个功能在IE10之前的浏览器中是无法使用的,之前我一直不知道,原来这种属性都是有兼容性问题的。于是,带着疑惑,我尝试了一下,因为我的电脑不知道为什么IETester 装好以后用不了,所以我是在IE浏览器的仿真测试中运行。我的IE版本是11.结果发现是IE8及其之前的浏览器不能运行:我的测试测试代码如下:

    ----------------------------------------------------------------------------

    <body>     <p class="p1">我是p1</p>     <p class="p1">我是p2</p>     <p class="p1">我是p3</p> <script>     var x=document.getElementsByClassName("p1");     alert(x[1].innerHTML); </script>

    ----------------------------------------------------------------------------

    后来在听了视频中老师的方法以后,知道了解决这个问题的方法,那就是我们自己封装一个兼容各个浏览器的函数,整理后代码如下:

    ----------------------------------------------------------------------------

    <body>     <p class="p1">我是p1</p>     <p class="p1">我是p2</p>     <p class="p1">我是p3</p> <script>     function getClassName(clsName,parent){         var oParent=document.getElementById(parent)||document;         var elements=oParent.getElementsByTagName("*");         var ele=[];         for(var i=0;i<elements.length;i++){             if(elements[i].className==clsName){                 ele.push(elements[i]);             }         }         return ele;     }     alert(getClassName("p1")[1].innerHTML); </script> </body>

    ----------------------------------------------------------------------------

    经过IE11浏览器的仿真测试,发现连IE5这种老古董都会弹出“我是p2”的框框.

    转载请注明原文地址: https://ju.6miu.com/read-678448.html

    最新回复(0)