关于ie浏览器无法识别js中getElementsByClassName问题,现通过以下方法,引用如下js
/** *打印js对象详细信息 */ function alertObj(obj) { var description = ""; for ( var i in obj) { var property = obj[i]; description += i + " = " + property + " "; } alert(description); } /** *通过class名和标签名获取css样式对象组 */ function getClassNames(classStr, tagName) { if (document.getElementsByClassName) { return document.getElementsByClassName(classStr) } else { //为了兼容ie8及其以下版本的方法 var nodes = document.getElementsByTagName(tagName), ret = []; for (i = 0; i < nodes.length; i++) { if (hasClass(nodes[i], classStr)) { ret.push(nodes[i]) } } return ret; } } /** *判断节点class存在性 */ function hasClass(tagStr, classStr) { //这个正则表达式是因为class可以有多个,判断是否包含 var arr = tagStr.className.split(/s+/); for ( var i = 0; i < arr.length; i++) { if (arr[i] == classStr) { return true; } } return false; } //由于加载顺序,获取对象的代码应写在对象已加载之后 var spans = getClassNames('nm', 'span'); if (null != spans) { //alertObj(divs); //遍历对象,改其css样式 for ( var i = 0; i < spans.length; i++) { spans[i].innerHTML =weixin[0]; } } //由于加载顺序,获取对象的代码应写在对象已加载之后 var spans = getClassNames('wx', 'span'); if (null != spans) { //alertObj(divs); //遍历对象,改其css样式 for ( var i = 0; i < spans.length; i++) { spans[i].innerHTML = weixin[1]; } }