Javascript 如何移动a<;第1分部>;变成一个<;第2分部>;不移动整体<;第1分部>;并在<;第1部分>;?

Javascript 如何移动a<;第1分部>;变成一个<;第2分部>;不移动整体<;第1分部>;并在<;第1部分>;?,javascript,function,appendchild,Javascript,Function,Appendchild,这里是total JS新手,我试图用普通的JS/Html编写一个待办事项列表,其中“待办事项”中的元素在单击时可以以“完成”结尾。我已经使我的图标可点击,我已经设法将内容从一个div移动到另一个div,但我有几个问题,我似乎找不到问题所在: 1:为什么我的JS脚本只移动而将我的整个“doList”div移动到我的“doneList”div中?这是父母的问题吗?(第24行)编辑:已解决 2:我到底是如何做到只移动一个元素,即我单击的元素,而不移动其他元素的?现在他们在出现时都有相同的ID,所以我想

这里是total JS新手,我试图用普通的JS/Html编写一个待办事项列表,其中“待办事项”中的元素在单击时可以以“完成”结尾。我已经使我的图标可点击,我已经设法将内容从一个div移动到另一个div,但我有几个问题,我似乎找不到问题所在:

1:为什么我的JS脚本只移动
  • 而将我的整个“doList”div移动到我的“doneList”div中?这是父母的问题吗?(第24行)编辑:已解决

    2:我到底是如何做到只移动一个元素,即我单击的元素,而不移动其他元素的?现在他们在出现时都有相同的ID,所以我想这会是个问题,所以。。。编辑:已解决

    3:有没有办法给每个
  • 一个不同的ID,并在单击后更改移动的
  • 元素的ID

    4:单击后,当我最终在右侧div中获得我的
  • 元素时,我如何“重新启动”我的函数,以便我输入的下一个
  • 元素在我移动的元素之后出现在“todo”而不是“done”中

    以下是我迄今为止读过并尝试过的内容:在我的moveItem函数中更改父项和子项,在创建时为我的
  • 元素提供ID,使用li.ID和classList删除并添加ID。删除/添加,阅读至少50个关于如何将div移动到另一个div的答案,但没有找到任何适合我需要的答案,因为我想移动一个.createElement创建的
  • 点击并完成它,而不是单独移动一个div,移动已经在我的html中的元素集或融合两个div的内容

    这是我的JS代码,我希望你能读懂我在这里要实现的目标,这是我的第一篇文章,也是我第一次接触JS和代码,加上我是法国人,还没有掌握所有的词汇,请耐心听我说

    这是我的密码:

    函数newItem(){
    console.log(“内部newItem”)
    //设置变量
    让item=document.getElementById(“taskinput”).value;
    设ul=document.getElementById('doList');
    设li=document.createElement('li');
    li.id='todotask';
    //现在将文本放入列表项中
    li.appendChild(document.createTextNode(item));
    ul.appendChild(li);//将列表项放入无序列表中
    document.getElementById(“taskinput”).value=”“;//删除当前todo中的内容
    li.onclick=moveItem;//单击li时运行moveItem
    }
    功能项目(e){
    var moveTo=this.parentElement.parentElement==doneList?todotask:doneList;
    moveTo.appendChild(this.parentElement);
    console.log(“移动到完成的项目”)
    }
    document.body.onkeyup=函数(e){
    让item=document.getElementById(“taskinput”).value;
    如果(e.keyCode==13){
    log('enter pressed!');
    newItem();
    控制台日志(项目);
    };
    };
    document.getElementById('addtask')。onclick=function(){
    console.log('按下添加按钮!')
    newItem()
    }
    
    待办事项清单
    

    moveItem
    中,
    这是
    ul
    。因此,您应该移动
    this
    ,而不是
    this.parentElement

    另外,
    doList
    doneList
    将是元素的父元素,而不是祖辈元素,因此需要更改三元表达式中的条件

    返回时的目的地应该是
    doList
    todotask
    是特定任务的ID。您也不应该像那样创建重复的ID。不需要为动态创建的任务提供ID

    函数newItem(){
    console.log(“内部newItem”)
    //设置变量
    让item=document.getElementById(“taskinput”).value;
    设ul=document.getElementById('doList');
    设li=document.createElement('li');
    //现在将文本放入列表项中
    li.appendChild(document.createTextNode(item));
    ul.appendChild(li);//将列表项放入无序列表中
    document.getElementById(“taskinput”).value=”“;//删除当前todo中的内容
    li.onclick=moveItem;//单击li时运行moveItem
    }
    功能项目(e){
    var moveTo=this.parentElement==doneList?doList:doneList;
    moveTo.appendChild(这个);
    log(“项目移动到”+(moveTo==doneList?“完成”:“ToDo”))
    }
    document.body.onkeyup=函数(e){
    让item=document.getElementById(“taskinput”).value;
    如果(e.keyCode==13){
    log('enter pressed!');
    newItem();
    控制台日志(项目);
    };
    };
    document.getElementById('addtask')。onclick=function(){
    console.log('按下添加按钮!')
    newItem()
    }
    
    待办事项清单
    做
    
    完成:

    moveItem
    中,
    这是
    ul
    。因此,您应该移动
    this
    ,而不是
    this.parentElement

    另外,
    doList
    doneList
    将是元素的父元素,而不是祖辈元素,因此需要更改三元表达式中的条件

    返回时的目的地应该是
    doList
    todotask
    是特定任务的ID。您也不应该像那样创建重复的ID。不需要为动态创建的任务提供ID

    函数newItem(){
    console.log(“内部newItem”)
    //设置变量
    让item=document.getElementById(“taskinput”).value;
    设ul=document.getElementById('doList');
    设li=document.createElement('li');
    //现在将文本放入列表项中
    li.appendChild(document.createTextNode(item));
    ul.appendChild(li);//把它列出来