注册 登录
编程论坛 JavaScript论坛

一个小问题,希望可以解决,谢谢

yuanlue 发布于 2016-04-11 16:40, 3891 次点击
<script language="javascript">
var le=0;
function test(){
    var txt=document.createElement('div');     
    txt.style.background="black";
    txt.style.width="10px"
    txt.style.height="10px"
    txt.id="zidan";
    txt.style.position="absolute"
    txt.style.left="10px"
   
    document.body.appendChild(txt);
   
    }
   
 

function test2(){
   

   
  abc=document.getElementById('zidan').style.left;
  
  len=parseInt(abc.substr(0,abc.length-2)); //去掉px  10
  
  zidan.style.left=parseInt((len+10))+'px'

  }

  
 window.setInterval("test2()",1000)



这个代码我是想设置一个类似于子弹的效果,通过添加动态节点(一个div)然后在用定时器控制这个div的移动。但是问题来了,为什么第二次添加动态节点后,不会被test2函数监听, 望解答



2 回复
#2
yuanlue2016-04-11 16:41
第一个动态节点运行正常,但是第二个动态节点就不能触发,是因为id名字吗 那要怎么样在第二个函数中来获取第一个函数的动态节点。而且不是说id唯一会被替换吗?
#3
linuxpluto2016-05-06 15:51
搞清楚id属性的概念,我猜你有个循环来执行test(),那么多个div公有id名,test2()中只能找到一个id是zidan的div,其他的都忽略

做如下修改,对应的地方在改一下。。
txt.name="zidan";
document.getElementsByName('zidan');
1