Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用delete函数创建待办事项列表_Javascript - Fatal编程技术网

Javascript 尝试使用delete函数创建待办事项列表

Javascript 尝试使用delete函数创建待办事项列表,javascript,Javascript,我不熟悉javascript和一般的编码,我试图制作一个简单的待办事项列表,但无法使用delete按钮删除所有复选框,它只会删除第一个复选框。谢谢各位 我已经修改了您的代码,消除了不必要的id和name属性,并更新了deleteCheckBox函数,以循环使用ul中的所有li 函数taskadd(){ taskNew=newobjecttask(); } 函数objectTask(){ var task=document.getElementById('textinput')。值; var

我不熟悉javascript和一般的编码,我试图制作一个简单的待办事项列表,但无法使用delete按钮删除所有复选框,它只会删除第一个复选框。谢谢各位


我已经修改了您的代码,消除了不必要的
id
name
属性,并更新了
deleteCheckBox
函数,以循环使用
ul
中的所有
li

函数taskadd(){
taskNew=newobjecttask();
}
函数objectTask(){
var task=document.getElementById('textinput')。值;
var listItem=document.createElement(“li”);
var checkbox=document.createElement(“输入”)
checkbox.type=“checkbox”;
listItem.appendChild(复选框);
var itemText=document.createTextNode(任务);
appendChild(itemText);
document.getElementById('place').appendChild(listItem);
}
函数deleteCheckBox(){
var ul=document.getElementById('place');
var li=ul.儿童;
对于(变量i=0;i


    为每个复选框指定相同的id,getElementById方法只返回第一个匹配的元素

    如果您想获取所有复选框并删除选中的复选框,可以这样做。(请注意,此代码是徒手编写的,未经测试)

    var inputs=document.getElementsByTagName(“输入”);
    对于(i=o;i

    首先获取标记为“input”的所有元素,然后检查它们是否为复选框类型并已选中。

    复选框id正在重复,谢谢。还有一件事,我正在尝试添加一个按钮来标记某些重要项目。我试着修改一些东西,但似乎可以让它继续下去。这是小提琴,实际上是一个单独的问题,但是继续,试试这个。如果你要做大量的DOM操作,你应该考虑使用一个库比如jQuery,而不是纯JS。你的答案是+1,但是你的建议受到三个问题的困扰:(1)它是孤儿的<代码> Li < /C>元素,这些元素将被删除的<代码>输入< /代码>元素,(2)当多个
    输入
    元素被标记为删除时,当选中的
    输入
    元素被删除时,它不考虑剩余
    输入
    元素位置的变化,(3)它假定页面上没有其他类型为
    复选框
    输入
    元素。和您的输入错误
    i=o
    应该是
    i=0
    。对不起-(@johnnyes在所有这些事情上仍然是你的权利。我把重点放在“删除所有已检查的支票盒”问题上,忽略了上下文。你的答案是正确的。这很酷。你的答案不错。我只想留下一些“建设性的批评”来启发未来的观众。:-)
    function taskadd() {
        taskNew = new objectTask();
    }
    
    function objectTask() {
        var task = document.getElementById('textinput').value;
        var listItem = document.createElement("li");
        listItem.id = task;
        var itemText = document.createTextNode(task);
        listItem.appendChild(itemText);
        var checkbox = document.createElement("input")
        checkbox.type = "checkbox";
        checkbox.name = task;
        checkbox.id = "checkbox";
        document.getElementById('place').appendChild(listItem);
        document.getElementById(task).insertBefore(checkbox, listItem.firstChild);
    }
    
    function deleteCheckBox() {
        while (document.getElementById('checkbox').checked === true) {
            var itemNode = document.getElementById(checkbox.name);
            itemNode.parentNode.removeChild(itemNode);
        }
    }
    
    var inputs = document.getElementsByTagName("input");
    for(i=o; i < inputs.length; i++){
       if(inputs[i].type == "checkbox" && inputs[i].checked){
           inputs[i].parentNode.removeChild(inputs[i]);
       }
    }