js,用getByClass取到的数组里面的对象取不到属性,getElementsByTagName就可以,为什么呢?


window.onload=function(){
var b = document.getElementById("s");
var str = "";
for(var i=0;i<16;i++){
str += "<div class='cube' style='width:50px;height: 50px;background: red;position: absolute;left:"+i*70+"px;' ></div>";

}
document.body.innerHTML=str;
var timer = null;
var num = 0;
var oCubes = getByClass(document,"cube");
alert(oCubes[0].style.width);  
};

function getStyle(obj,attr){
return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,null)[attr];
};
function getByClass(obj,Name){
var arr = [];
obj= obj?obj:document;

var aElement = obj.getElementsByTagName('*');
for(var i=0;i<aElement.length;i++){
if(aElement[i].className==Name){
arr.push(obj);

}

return arr;
};
</script>
</head>
<body>
</body>
</html>

如果上面的getByClass一段换成var oCubes = document.getElementsByTagName("div");
alert就可以弹出oCube[0]的宽度,不知道是为什么

EverDream3726731
浏览 1400回答 1
1回答

慕勒0069038

document.getElementsByClassName("className") 使用这个 。,。 你方法用错了
打开App,查看更多内容
随时随地看视频慕课网APP