开始重新学习css和js,一直使用的是jQuery,好多js的东西没有注意到。比如今天遇到的getElementsByClassName。
使用getElementsByClassName获取div,控制它的样式,一直提示对象的“style”属性不存在,想了好久,终于看到它获取到的是集合,不是单个dom元素,使用下角标[0]获取到了该元素。
查看了一下,该方法支持ie9以上,其他的ie版本并不支持该方法,所以尽量少用。
当然,可以自己写方法来弥补:
window.onload = function () {
var tagName = getClass("div", "classname");
for (var i = 0; i < tagName.length; i++) { // 返回多个元素的数组
tagName[i].innerHTML = "你好";
}
}
function getClass(tagname, className) { // tagname指元素,className指class的值
if (document.getElementsByClassName) { // 判断浏览器是否支持getElementsByClassName,如果支持就直接的用
return getElementsByClassName(className);
}
else { // 当浏览器不支持getElementsByClassName的时候用下面的方法
var tagname = document.getElementsByTagName(tagname);
var tagnameAll = []; //这个数组用于存储所有符合条件的元素
for (var i = 0; i < tagname.length; i++) { // 遍历获得的元素
if (tagname[i].className == className) { // 如果获得的元素中的class的值等于指定的类名,就赋值给tagnameAll
tagnameAll[tagnameAll.length] = tagname[i];
}
}
return tagnameAll;
}
}