关于ie浏览器无法识别js中getElementsByClassName问题,现通过以下方法,引用如下js
/**
*打印js对象详细信息
*/
function alertObj(obj)
{
var description = "";
for ( var i in obj)
{
var property = obj[i];
description += i + " = " + property + "\n";
}
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];
}
}