封装class,让className可以在IE8及其以下版本的浏览器中使用
思路:在IE8及其以下版本的浏览器中className会变为一个字符串,用split将其变为数组,用逗号隔开
你所需要的class名,再建一个新数组,判断原来那个数组里面的元素有没有你需要的类名,如果有,就添加到
新数组里,最后返回新数组
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title></head> <body> <ul id="a"><li class="a abc abcd abcde ">1</li><li class="c a">2</li><li class="aa">3</li><li class="a c b r f">4</li><li class="b">5</li> </ul> <div id="b"><b class="div1">12312</b><div class="divvv">aisdjfoa </div><h1 class="div div1"> 23456</h1><p class="div2 "> pppp</p> </div> <script> // 第一种: for (var i = 0; i <fn("a","a").length; i++) {fn("a","a")[i].style.background = "red";} //需要调用时,直接修改调用函数fn里的参数,第一个参数为父元素的id,第二个参数为要调用的class类名 for (var i = 0; i <fn("b","div1").length; i++) {fn("b","div1")[i].style.color = "blue";}function fn(ul,a) {var oUL = document.getElementById(ul);var arrLi = oUL.getElementsByTagName("*");// 获取到ul标签下所有子标签 //console.log(typeof arrLi[0].getAttribute("class"))检查第一个class的类型;//String;所以class为字符串; var arLII = [];//存放含有我需要类名的标签 for (var i = 0; i < arrLi.length; i++) {var arrString = arrLi[i].className.split(" ")// 将class类名中的空格换成“,”,将arrLi[i]变为数组并以逗号隔开,即第一个class为arrString=[a,ab,abcd,abcde] for (j in arrString) {if (arrString[j] == a) {arLII.push(arrLi[i])}// 然后进行for in循环,判断这个数组里是否有为“a”的元素,如果有就添加到新数组里 }}return arLII;//返回新数组 }</script></body> <!--<ul>--> <!--<li class="RRR">1</li>--> <!--<li class="c a">2</li>--> <!--<li class="RRR">3</li>--> <!--<li class="a c b r f">4</li>--> <!--<li class="b">5</li>--> <!--</ul>--> <script> // 第二种: // function rua(classR,ruaC) { // ruaC=ruaC||document; // if(ruaC.getElementsByClassName){ // return ruaC.getElementsByClassName(classR); // }else{ // var RR=ruaC.getElementsByTagName("*"); // var ru=[]; // for (var i=0;i<RR.length;i++){ // var aa=RR[i].className.split(" "); // for(var p=0;p<aa.length;p++){ // if(aa==classR){ // ru.push(RR[i]); // } // } // // } // return ru; // } // } // var Rul=document.getElementsByTagName("ul")[0]; // rua("RRR",Rul)[0].style.color="red"; </script> </html>
封装class,让className可以在IE8及其以下版本的浏览器中使用相关推荐
- html中padding在ie8兼容性,怎么解决bootstrap在各版本IE浏览器中的兼容性问题?
元芳怎么了 Bootstrap的目标是在最新的桌面和移动浏览器上有最佳的表现,也就是说,在较老旧的浏览器上可能会导致某些组件表现出的样式有些不同,但是功能是完整的.bootstrap3支持的浏览器:C ...
- 解决ie8及低版本浏览器不支持html5标签属性
html5新标签<head>.<nav>.<footer>兼容性 - 经验小结,处理方案 IE支持: IE8或更早的版本不支持HTML5的<nav>标签 ...
- 高版本IE浏览器(IE8、IE9)查看网页Applet问题解决方案
使用高版本IE浏览器(IE8.IE9等)查看包含Applet的网页时,网页的Applet所在区域无法正常显示(空白),解决办法如下: 1.确保客户端已经安装Java的JRE,JRE中已经包含了运行Ap ...
- IE8 以下版本的浏览器的盒子模型有什么不一样的地方?
盒 子模型: 外边距(margin) 边框(border) 内边距(padding) 内容(content): 在标准的盒子模型中(ie8 以上的版本中),宽度和高度指的是 ...
- 不支持IE8及以下版本
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- RegExp在IE8等浏览器中的兼容性问题
这里讲的兼容性问题主要指String的API在正则表达式的处理上不同. 匹配结果的兼容性 第一个问题:在IE<=8中,如果split()方法的限定符是正则表达式,返回的数组不包含空值元素,而如果 ...
- 背景色透明兼容写法,兼容IE8等低版本浏览器
现在虽然好多企业公司放弃了兼容IE8及以下的浏览器,但是免不了在做一些政府网站时会要求兼容低版本.工作中遇到的,做下总结,以便以后查阅方便 设置背景色半透明背景色透明兼容写法,兼容IE8等低版本浏览器 ...
- IE8浏览器中图片透明度设置
在IE浏览器中自IE9之后的图片透明度的设置方法都是一致的,而且是最简便的设置方式,CSS代码如下: filter: alpha(opacity=70); 若果要兼容其他的浏览器的话,我通常的做法是直 ...
- Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释
Python正则表达式工具类文件的封装实例,提供了多个实例,并且在代码中包含中文注释 import reclass RegexUtils:'''正则表达式工具类'''def __init__(self ...
最新文章
- svn服务器发生变更,如何切换
- 一位996、CRUD开发者的一天
- 2018.3.30 边框应用与导航栏设置
- C++反汇编第一讲,认识构造函数,析构函数,以及成员函数
- 计算机二进制和太极,八卦与二进制
- MySQL 的DDL DML DQL DCL细节解析 知道这些就够了
- 【论文】2019 年,智能问答(Question Answering)的主要研究方向有哪些?
- 奥普泰安防监控智能配电箱——为安防行业添新助力
- 同城大数据| 有人坐享繁华,有人蜗居窘促,帝都学子们的差距有多大?
- minisforum HX90G/HX99G miniPC-Hackintosh-Opencore 黑苹果efi引导文件
- 打印机服务器ip修改,怎样改打印机服务器的ip地址
- 集智全球开源 聚合中国力量 Tungsten Fabric中文社区成立大会暨社区第一次全员大会成功举行
- SDI、PDI、UART,I2C,SPI 接口总结
- 老牌基金重仓股轮番遭“空投”
- GraphCut算法介绍
- 供应链环境下,制造企业物流运作模式该如何选择
- vb调用蜂鸣器制造音阶
- 【AVD】FFmpeg 音频编码时 SampleFormat 的选择,报错 “Specified sample format s16 is invalid or not supported.“ 的解决
- html长方形代码_html实现圆角矩形
- 韩国GreenChip高灵敏抗干扰面板触控触摸芯片