解决ie8(及其以下)不支持getElementsByClassName的问题
这篇技术笔记与大家分享的是:解决IE8(及以下)不支持getElementsByClassName的方法。如果有说错的地方,麻烦留言告诉我,我及时更正,一来是更新一下我的认知,二来也是不要误导的他人,谢谢。
我们在给元素设置样式的时候,可以说用的最多的就是类(class)了。遗憾的是在低版本IE浏览器(IE8及其以下版本)中,我们不能用getElementsByClassName,因为IE没有为document对象添加这个方法。
// IE8及其以下版本中 这个结果是false
console.info('getElementsByClassName' in window.document);
下面,分享一下我的getElementsByTagName的兼容写法:
/*
参数说明:
obj参数:一个DOM对象,getClass函数会取得这个对象下的全部元素节点。
sClass:一个字符串,获取元素的类(class)名。
*/
function getClass(obj,sClass){
// 准备一个数组 做为函数调用的结果返回
var aResult = [];
// 如果docuemnt对象中有getElementsByClassName这个方法 我们就用浏览器提供的
因为浏览器提供的效率更高
if('getElementsByClassName' in document){
aResult = obj.getElementsByClassName(sClass);
}
// 如果浏览器没有 那么我们自己来实现 总共4步
else{
//1.获取obj下所有的元素
var aEle = obj.getElementsByTagName('*');
//2.用for循环来检查每个子元素
for( var i=0; i<aEle.length; i++ ){
// 3.得到每个子元素className值 这个值是字符串
var str = aEle[i].className;
// 4.如果该元素的class属性有我们需要的class 那么把它放进aResult
if(str.indexOf(sClass)!=-1){
aResult.push(aEle[i]);
}
}
}
return aResult;
}
解决ie8(及其以下)不支持getElementsByClassName的问题的更多相关文章
- bootstrap-datetimepicker下ie8对indexOf的支持问题
问题: 由于ie8不支持indexOf这个方法,所以在引入bootstrap-datetimepicker.js的时候js会抛出错误. 解决: // 在bootstrap-datetimepicker ...
- ie不支持getElementsByClassName的解决办法
目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管:如果不支持,就在document对象里加入getElementsByClassName这个方法,按兴趣的朋友可以了解下 if (navig ...
- 关于IE8及其以下的IE版本不支持getElementsByClassName
之前做一下项目的时候知道IE8以及其以下的版本不支持getElementsByClassName,于是乎自己写了一个函数重新定义getElementsByClassName,函数代码如下: funct ...
- 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法--(转)
如有雷同,不胜荣幸,若转载,请注明 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了boot ...
- 转载------让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
本文是转载及收藏 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法 最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在c ...
- 解决IE8不支持console
解决IE8不支持console,代码中包含console时会报错. //解决 IE8 不支持console window.console = window.console || (function ( ...
- bootstrap支持ie8 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
做一个在线系统,PC端也要做,但要兼容千恶的IE8[IE6 是万恶,打死我都不会管IE6],IE8 是我底线了md, 在IE8下 bottstrap 错乱,变形,不支持一些属性的问题,下面看了一篇 某 ...
- 解决ie8和ie7显示不一致
解决ie8和ie7显示不一致 当使用 Microsoft Internet Explorer 8 Beta 1 版本时,可能会遇到以下问题之一: • 网页布局不整齐 • 文本或图像重叠 • JavaS ...
- 完美解决IE8有两个进程的问题
完美解决IE8有两个进程的问题,照以下方法设置后就只有一个进程了,没有什么负影响哦! 方法: 1.win+R,在运行框里输入:gpedit.msc,回车进入组策略设置. 2.依次展开:计算机配置——管 ...
随机推荐
- .net WebClient发送请求实例:
public static Main(string [] ager) { WebClient client = new WebClient(); client.Headers.Clear(); cli ...
- [OC笔记] protocol之我的见解
OC中的protocol就是和JAVA中interface差不多的东西,但是又不是完全一样的.这个protocol常用来实现委托,也就是自己不实现,当事件产生的时候去回调委托者. 让委托者去执行响应的 ...
- Ubuntu 杂音 alsa*
$ sudo alsactl init # 初始化 $ sudo alsactl store # 存储状态 会调的话可以 $ alsamixer
- img
public BitmapImage BitmapToImage(System.Drawing.Bitmap bitmap) { System.Drawing.Bitmap bitmapSource ...
- C# 遍历文件夹下所有子文件夹中的文件,得到文件名
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using Syst ...
- VLC嵌入网页,终于要成功了!
<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" width="640" heig ...
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
DOM事件流(event flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...
- OpenSource.organization-in-github
1. gosquared https://github.com/gosquared 2. slack https://github.com/slackhq 3. The New York Times ...
- geoserver使用curl发布 imagemosaic
1.//create workspace curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d ...
- node-webkit 支持pdf浏览
因为项目最近需要进行pdf文件的预览. 项目:linux平台下使用node-webkit开发的桌面应用. 所以在想如何解决这个问题. 首先,firefox直接可以打开pdf文件,预览效果佳,有菜单,放 ...