IE 兼容 getElementsByClassName】的更多相关文章

getElementsByClassName是通过class来获取DOM,但是IE8及以下不能兼容.这里做了一下兼容性. HTML: <div class="pox">我是pox</div> 兼容JS: function getByClassName(ClassName){ if(document.getElementsByClassName){ return document.getElementsByClassName(ClassName); }else{…
IE8以下版本没有getElementsByClassName这个方法,以下是兼容写法 function ieGetElementsByClassName() { if (!document.getElementsByClassName) { document.getElementsByClassName = function(className, element) { var children = (element || document).getElementsByTagName('*');…
getElementsByClassName 通过class获取节点,是很多新人练习原生JS都用到的,项目中也会写,当项目进行到一定程度时,测试IE低版本,忽然发现不支持的时候,瞬间感觉整个人都不好了.别急,下面的代码贴入项目中就OK,支持 IE8 ;  注: IE6.IE7未能完美解决,不支持动态添加节点 //基于 IE 对 getElementsByClassName 的支持 (function(CN){ if( !(CN in document) ){ document[CN] = fun…
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="" /> <meta name="copyright" content="" /> <title></title> <style> * {…
ie下click()不能操作文档中没有的节点,所以你可以在click()前添加下面的语句 document.body.appendChild( input ); input.style.display = 'none'; input.click(); 要想兼容ie9之前用attachEvent而不是addEventListener.还有ie9之前不兼容getElementsByClassName…
<script type="text/javascript"> /*处理ie7.ie8不兼容getElementsByClassName*/ if(!document.getElementsByClassName) {  document.getElementsByClassName = function(className, element) {   var children = (element || document).getElementsByTagName('*'…
JavaScript基础知识点 一.JavaScript概述 参考:http://www.w3school.com.cn/b.asp JavaScript的历史 1.1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) 2.Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚…
第1章.基础篇(上) Abstract:文档树.节点操作.属性操作.样式操作.事件 DOM (Document Object Model) - 文档对象模型 以对象的方式来表示对应的html,它有一系列的规范 i.e. 在浏览器中,DOM是通过JS实现的. DOM: DOM Core:核心结构.API的定义 DOM HTML: 定义HTML如何转化成对象(HTML对应的对象)-- 操作节点 DOM Style:样式转换成对象 -- 操作样式 DOM Event:事件对象的模型 -- 响应用户的操…
选择器模块 1.获取元素的基本操作 案例:给页面中的div和p设置边框样式 1.1 传统方式 -获取元素并设置样式 实现思路 1 通过 标签名 获取元素 2 遍历循环 设置样式 var dvs = document.getElementsByTagName("div"), ps = document.getElementsByTagName("p"), i = 0, j = 0, dvLen = dvs.length, pLen = ps.length; for(;…
function $(selector){ //获取第一个字符 var firstLetter = selector.charAt(0); //对第一个字符进行判断 switch(firstLetter){ //#则为id名称: case '#' : return idSelector(selector); break; //.则为class; case '.' : return classSelector(selector); break; default : return tagNameSe…
平时写HTML时多用class来命名,为很少用id来命名,主要原因就是class使用起来比较灵活. 但是万恶的JS在操作DOM的时候对ie6+只提供了getElementById和getElementsByTagName两个方法来查找DOM. 这时候就很尴尬了,就不得不在HTML里加入各种各样的id.看了就烦,不爽 Js有提供一个通过class名查找DOM的方法:getElementsByClassName(); 但是......只支持ie9+   -.-,哎呀好尴尬... 只好自己写一个兼容I…
getElementsByClassName这个方法很常用,但是只有较新的浏览器才兼容,所以我们需要自己写个方法,解决这个问题,使它能够兼容各个浏览器. function getElementsByClassName(node,classname){ //先判断浏览器是否支持,如果支持则直接使用 if(node.getElementsByClassName){ return node.getElementsByClassName(classname); }else {//如果不支持 var re…
getElementsByClassName,这个方法让我们可以通过 class 属性中的类名来访问元素,但是IE9 以下的浏览器不支持 .为解决这个问题,我们写一个兼容函数 getByClass() 实现在IE低版本和现代浏览器中都能通过类名来获取节点. function getByClass(name){ //如果浏览器支持 会得到一个函数体 if(document.getElementsByClassName){ return document.getElementsByClassName…
因为ie8一下不兼容                 document.getElementsByClassName()                 功能:通过class的名字获取符合条件的元素                   node.getElementsByClassName()                 指定node节点下,符合条件的元素.   所以我们自己封装一个兼容IE8以下,获取className节点的函数. //兼容IE8以下,获取className节点的元素. f…
概述 JavaScript中getElementsByClassName()方法IE8及以下不支持.本文通过使用正则表达式实 现1个兼容方案. 本文内容分为3个部分. 浏览器原生getElementsByClassName()功能和用法. 兼容方案用到的正则表达式理解. 完整代码示例. 大家不用一听到正则表达式就慌,本方案用到的正则表达式并不复杂,而且我也会详细解释的. 原生getElementsByClassName 语法 var elements = document.getElements…
众所周知,JS获取DOM有个getElementsByClassName,非常方便,但是呢,为了兼容某些浏览器(你懂的).只能 进行封装下了.解决方法如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, i…
try{ var a = document.getElementsByClassName("cla"); console.log(a); }catch(ex){ var array = []; for(var i = 0;i<document.body.childNodes.length;i++){ if(document.body.childNodes[i].nodeType === 1){ var name = document.body.childNodes[i].clas…
function getElementsByClassName(node, classname){ if(node.getElementsByClassName){ //使用现有方法 return node.getElementsByClassName(classname); }else{ var results = nes Array(); var elems = node.getElementsByTagName("*"); for(var i=0; i<elems.leng…
在DOM3里已经加入了getElementsByClassName这个方法,然而IE9.10以外的其它版本均不支持,这是一块伤痛啊! 目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管:如果不支持,就在document对象里加入getElementsByClassName这个方法,这样的写法有一个好处,即不管有没有原生函数你都不用去修改代码. 网上部分人直接定义一个getElementsByClassName函数,但是这样的话就需要把代码中所有使用document.getElement…
function getElementsByClassName(className,root,tagName) { //root:父节点,tagName:该节点的标签名. 这两个参数均可有可无 if(root){ root=typeof root=="string" ? document.getElementById(root) : root; }else{ root=document.body; } tagName=tagName||"*"; if (docume…
H5中新增了一个令人期待已久的方法:getElementsByClassName,这个方法让我们可以通过 class 属性中的类名来访问元素,这是极好的. but! 这个方法在IE9以下的浏览器是不支持的,淡淡的忧伤~~~ 幸好,天无绝人之路,还是有办法可以解决的 function getElementsByClassName(node, className) { if (node.getElementsByClassName) { // 使用现有方法 return node.getElemen…
网页错误详细信息消息: 对象不支持此属性或方法 document.getElementsByClassName('element_name') 需要自己实现下该方法,因为ie5之前的版本并不支持这个方法 有以下四种方法,第四种兼容性最好 一. //create method getElementsByClassName for document if(!document.getElementsByClassName){ document.getElementsByClassName = func…
var getElementsByClassName = function (searchClass, node,tag) { if(document.getElementsByClassName){ var nodes = (node || document).getElementsByClassName(searchClass),result = []; for(var i=0 ;node = nodes[i++];){ if(tag !== "*" && node…
× 目录 [1]使用 [2]classList [3]扩展 前面的话 既然有getElementById()和getElementsByTagName()方法,为什么没有getElementsByClassName()呢?id属性.标签名.class属性并没有什么优劣之分啊.终于,HTML5新增了getElementsByClassName()方法,由于在CSS布局中类名的广泛使用,该方法正好切中痛点,使得通过类名选取元素不再麻烦,成为最欢迎的一个方法.接下来,本文将详细介绍该方法 使用 HTM…
今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=document.body.clientWidth||document.docuemntElement.clientWidth;//网页可见区域宽 var winH=document.body.clientHeight||document.docuemntElement.clientHeight;//网页可…
querySelector和querySelectorAll是W3C提供的新的查询接口 目前几乎主流浏览器均支持了他们.包括 IE8(含) 以上版本. Firefox. Chrome.Safari.Opera. 万能的sizzle在高版本的浏览器中复杂的选择器尽量走querySelectorAll,前提是这个匹配的节点没有兼容问题 从IE8开始虽然支持querySelectorAll的API,但是会有各式各样的BUG,所以sizzle拿rbuggyQSA用来记录这个BUG问题 if ( supp…
处理浏览器兼容问题实际上不是jQuery的精髓,毕竟让技术员想方设法取弥补浏览器的过错从而使得代码乱七八糟不是个好事.一些特殊情况的处理,完全实在浪费浏览器的性能:突兀的兼容解决使得的代码看起来既不美观也也不能对前端技术有任何提升.但是不管怎么说,只要不同的浏览器存在,就有可能出现兼容性问题,我们还必须去解决.比较好的是jQuery提供了一些比较优雅的浏览器兼容方案. 在处理浏览器兼容问题的时候最没有技术含量的方式是if…else..分支判断.jQuery中用到很多处理兼容的方法:多用于普通兼容…
获取类名的兼容函数 //obj.getElementsByClassName 只能在现代浏览器中使用,不能在IE8以下使用 //两个参数 classname 类名 obj 范围 function getClass(classname,obj){ obj=obj||document; if(obj.getElementsByClassName){ return obj.getElementsByClassName(classname);// 检测出能在现代浏览器中使用 }else{//在IE8及以…
1.IE8以下不支持getElementsByClassName方法//解决IE8之类不支持getElementsByClassNameif (!document.getElementsByClassName) { document.getElementsByClassName = function (className, element) { var children = (element || document).getElementsByTagName('*'); var elements…
这篇技术笔记与大家分享的是:解决IE8(及以下)不支持getElementsByClassName的方法.如果有说错的地方,麻烦留言告诉我,我及时更正,一来是更新一下我的认知,二来也是不要误导的他人,谢谢.我们在给元素设置样式的时候,可以说用的最多的就是类(class)了.遗憾的是在低版本IE浏览器(IE8及其以下版本)中,我们不能用getElementsByClassName,因为IE没有为document对象添加这个方法.// IE8及其以下版本中 这个结果是falseconsole.inf…