[ javascript ] getElementsByClassName与className和getAttribute!
2017-07-05 18:04
489 查看
对于javascript中的getElementsByClassName 在IE 6/7/8 不支持问题。
那么须要模拟出getElementsByClassName 须要採用className属性,这里就涉及到javascript中的getAttribute问题。
在ie 6/7 中,对于getAttribute存在Bug
须要採用className 获取例如以下:
对于标准浏览器,则能够直接使用className 也能够使用 getAttritbute,结果一样:
可是假设是ie 6/7 ,则getAttribute()存在问题。
所以getElementsByClassName 能够使用例如以下方式:
这里的实现方式比較简单。
1:常规属性建议使用:node.xxx。
2:自己定义属性建议使用: node.getAttribute("xxxx")。
3:当获取的目标是 javascript 里的keyword时建议使用node.getAttribute("xxx")。如label中的for。
4:当获取的目标是保留字,如:class,请使用className取代。
那么须要模拟出getElementsByClassName 须要採用className属性,这里就涉及到javascript中的getAttribute问题。
在ie 6/7 中,对于getAttribute存在Bug
须要採用className 获取例如以下:
var node = document.getElementById("test"); var name = node.className;
对于标准浏览器,则能够直接使用className 也能够使用 getAttritbute,结果一样:
node.getAttritbute("class");
可是假设是ie 6/7 ,则getAttribute()存在问题。
所以getElementsByClassName 能够使用例如以下方式:
getElementsByClazzName = document.getElementsClassName ? function(name){ return document.getElementsClassName(name); }:function(name){ var nodes = document.getElementsByTagName("*"), result = []; for(var node in nodes){ if(node.className && node.className.indexOf(name)){ result.push(node); } } return result; }
这里的实现方式比較简单。
1:常规属性建议使用:node.xxx。
2:自己定义属性建议使用: node.getAttribute("xxxx")。
3:当获取的目标是 javascript 里的keyword时建议使用node.getAttribute("xxx")。如label中的for。
4:当获取的目标是保留字,如:class,请使用className取代。
相关文章推荐
- [ javascript ] getElementsByClassName与className和getAttribute!
- javascript getElementsByClassName扩展函数
- 每日一题_JavaScript.使getElementsByClassName兼容IE7/8和火狐?
- document.getElementsByClassName:简单的原生通过className查找元素,可指定多个样式名称进行查找
- javascript getElementsByClassName实现代码
- javascript getElementsByClassName实现代码
- 深入理解javascript选择器API系列第二篇——getElementsByClassName
- JavaScript: Get Elements by ID, Tag, Name, Class
- 如何让javascript支持getElementsByClassName
- javascript getElementsByClassName 和js取地址栏参数
- javascript getElementsByClassName 和js取地址栏参数
- js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
- ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素。
- javascript getElementsByClassName函数
- javascript getElementsByClassName函数
- javascript基础(Dom查询的其他方法:body,documentElement,all,getElementsByClassName(),querySelectorAll())(二十八)
- 原生JavaScript解决document.getElementsByClassName兼容问题
- 关于getElementsByClassName的修正
- getElementById Vs getElementsByName(Javascript)细说HTML元素的ID和Name属性的区别
- javascript getElementsByClassName函数