Javascript 动态删除div元素

Javascript 动态删除div元素,javascript,html,Javascript,Html,我试图在单击之前创建的每个div元素时动态删除它。实际上,我创建了10个div正方形,其中包含0到n之间的随机数(来自输入),我想要的是当我在3秒内单击其中任何一个将其涂成红色,然后将其删除并将内容添加到textarea。 这是我的密码。我希望你能让我明白为什么它不起作用。。。谢谢大家! var-ti; 函数Start() { var n=document.getElementById(“addnumber”).value; 对于(i=1;i首先编写getElementsById,它必须是ge

我试图在单击之前创建的每个div元素时动态删除它。实际上,我创建了10个div正方形,其中包含0到n之间的随机数(来自输入),我想要的是当我在3秒内单击其中任何一个将其涂成红色,然后将其删除并将内容添加到textarea。 这是我的密码。我希望你能让我明白为什么它不起作用。。。谢谢大家!

var-ti;
函数Start()
{
var n=document.getElementById(“addnumber”).value;

对于(i=1;i首先编写
getElementsById
,它必须是
getElementById
。此外,您使事情变得更加困难。我将事情简化了一点。请参见以下内容:

var-ti;
函数Start(){
var n=document.getElementById(“addnumber”).value;
对于(i=1;i一些问题:

  • 使用
    setTimeout
    而不是
    setInterval
    为每个元素创建回调函数,因此无需进行倒计时等
  • 将单击的元素绑定到回调函数,因为无法依赖索引号:随着元素的消失,索引号也会改变
  • 在相加之前将字符串转换为数字,否则将进行串联而不是相加
以下是已更正的代码,并附有注释,以指示:

var-ti;
函数Start()
{
var n=document.getElementById(“addnumber”).value;

对于(i=1;i请添加一些解释,说明此代码为何有助于OP。这将有助于提供未来观众可以学习的答案。有关更多信息,请参阅。
getElementsById
必须是
getElementById
。是的,现在它可以工作了,似乎比我想象的要简单。谢谢!:D
    ti = setInterval(del(i), 3000);
    function del(index){
      return function() {
        listDivs[index].style.backgroundColor="red";
        if ( l == 0) 
            clearInterval(ti);
        else {
            document.body.removeChild(listDivs[index]);
            document.getElementById("txt").value += listDivs[index].innerHTML;
        }
      };
    }