为了账号安全,请及时绑定邮箱和手机立即绑定

js中定义赋值的问题

js中定义赋值的问题

qq_電波_03505597 2016-07-07 15:16:46
<!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个赞

你这个问题有点多。。先不说没必要加分号的地方加分号了。再说说逻辑:

  1. aDiv说从DOM数中按照TagName去获取的,但是这个时候DOM上并没有div,是不可能取到的。。

  2. 由于aDiv是空,因此你后面两个给div设置属性的两个循环根本就没有走进去

  3. 其实页面上是有30个div的,只不过因为position:absolute,所以都重叠在一起了。

你可以在浏览器上按F12来跟踪查看的。。


查看完整回答
反对 回复 2016-07-07
  • qq_電波_03505597
    qq_電波_03505597
    你说aDiv 是取不到的? 但是我如果不定义str这个中间元素,直接用 document.body.innerHTML+ =.. ,后面两个div的布局是可以实现的,那不就是可以取的到的吗。
  • qq_電波_03505597
    qq_電波_03505597
    因为不仅是定义str 会出问题,我将数组长度赋值给一个元素,也会有同样的问题。如果直接使用就不会。 还有分号那个,我用Sublime,它快捷生成的IF、FOR都是有分号结尾的,是不规范的吗?
  • 2 回答
  • 0 关注
  • 1535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信