<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
div
{
width: 50px;
height: 50px;
background: red;
position: absolute;
top:0;
left: 0;
font-size: 30px;
text-align: center;
line-height: 50px;
color: #fff;
}
</style>
<script>
window.onload = function () {
var aDiv = document.getElementsByTagName('div');
var str ='';
//批量创建div
for (var i = 0; i < 31; i++) {
str +='<div>'+i+'</div>';
alert(str);
};
//alert(str);
//坐标设置
for (var i = 0; i < aDiv.length; i++) {
//间隔10px同行排列
aDiv[i].style.left = 10+i*60 + 'px';
//逢10个换行
for (j=1;i>=10*j;j++) {
aDiv[i].style.top = j*60+'px';
aDiv[i].style.left = 10+(i-j*10)*60 + 'px';
} ;
//阶梯状排列
//aDiv[i].style.left = 10+i*50 + 'px';
//aDiv[i].style.top = 10+i*50 + 'px';
//“V”字型排列
//aDiv[i].style.left = 10+i*50 + 'px';
//if (i<aDiv.length/2) {
// aDiv[i].style.top = 10+i*50 + 'px';
//} else{
// aDiv[i].style.top = 10+(aDiv.length-1-i)*50 + 'px';
//};
};
document.body.innerHTML = str;
}
</script>
</head>
<body>
</body>
</html>为什么我只要定义了str ,就只能出最后一个div方块;如果直接用document.body.innerHTML 就能出现正确的效果。还有给div数组的长度定义 len,也会出问题。是哪里有冲突吗?视频里也没有做其他设置呀。
2 回答
nickylau82
TA贡献128条经验 获得超67个赞
你这个问题有点多。。先不说没必要加分号的地方加分号了。再说说逻辑:
aDiv说从DOM数中按照TagName去获取的,但是这个时候DOM上并没有div,是不可能取到的。。
由于aDiv是空,因此你后面两个给div设置属性的两个循环根本就没有走进去
其实页面上是有30个div的,只不过因为position:absolute,所以都重叠在一起了。
你可以在浏览器上按F12来跟踪查看的。。
添加回答
举报
0/150
提交
取消