Javascript 具有唯一值的待办事项列表

Javascript 具有唯一值的待办事项列表,javascript,Javascript,我想要一个用于简单待办事项列表的香草javaScript,它检查该项是否已经存在,并且仅当它不存在时才添加一个列表项 如果列表项不是唯一的,我可以添加列表项。甚至可以在项目存在时设置警报,但在创建新项目时会中断 var按钮=document.getElementById(“回车”); var input=document.getElementById(“userinput”); var ul=文件查询选择器(“ul”); 函数inputLength(){ 返回input.value.lengt

我想要一个用于简单待办事项列表的香草javaScript,它检查该项是否已经存在,并且仅当它不存在时才添加一个列表项

如果列表项不是唯一的,我可以添加列表项。甚至可以在项目存在时设置警报,但在创建新项目时会中断

var按钮=document.getElementById(“回车”);
var input=document.getElementById(“userinput”);
var ul=文件查询选择器(“ul”);
函数inputLength(){
返回input.value.length;
}
函数createListElement(){
var li=document.createElement(“li”);
appendChild(document.createTextNode(input.value));
ul.儿童(li);
input.value=“”;
}
addEventListener(“单击”,函数(){
var list items=ul.querySelectorAll('li');
对于(变量i=0;i0){
createListElement();
}
}
});

    不返回数组,因此不能对其使用
    for
    。改用
    forEach

    另外,您的
    if
    语句有点奇怪,因此我将其分成一个循环,在循环结束后使用条件插入来检查值:

    var按钮=document.getElementById(“回车”);
    var input=document.getElementById(“userinput”);
    var ul=文件查询选择器(“ul”);
    函数inputLength(){
    返回input.value.length;
    }
    函数createListElement(){
    var li=document.createElement(“li”);
    appendChild(document.createTextNode(input.value));
    ul.儿童(li);
    input.value=“”;
    }
    addEventListener(“单击”,函数(){
    var list items=ul.querySelectorAll('li');
    var=false;
    forEach(函数(listItem){
    if(listItem.innerText==input.value){
    存在=真;
    警报(“项目已存在”);
    }
    })
    如果(!存在){
    createListElement();
    }
    });
    
    
    
      需要在
      之外进行
      循环,并匹配chack,然后将其保存到变量中,以便调用函数

       else if (inputLength() > 0) {
                createListElement();
              }
      
      var按钮=document.getElementById(“回车”);
      var input=document.getElementById(“userinput”);
      var ul=文件查询选择器(“ul”);
      函数inputLength(){
      返回input.value.length;
      }
      函数createListElement(){
      var li=document.createElement(“li”);
      appendChild(document.createTextNode(input.value));
      ul.儿童(li);
      input.value=“”;
      }
      addEventListener(“单击”,函数(){
      var list items=ul.querySelectorAll('li');
      让match=false;
      对于(变量i=0;i
      
      
      
        我能够使用for循环使代码正常工作。请更正,但我看到querySelectorAll返回数组。很高兴听到。根据MDN,querySelectorAll。这有点类似于数组,因为它具有类似的属性,如
        .length
        和方法,如
        .forEach