Javascript 如何筛选新的列表元素?

Javascript 如何筛选新的列表元素?,javascript,Javascript,很抱歉代码太长,但我从昨晚开始就一直在尝试查找问题。目标是: 当用户输入任何列表值时,它将创建一个包含该值的新列表 当用户单击指定列表的“删除”按钮时,该列表将被删除 当用户在搜索栏中输入任何值时,如果任何列表值等同于搜索输入,则应显示该列表值 问题是,当我在搜索栏中输入一个列表值时,它不会显示任何内容 const btn=document.querySelector(“输入[type=submit]”); const ulTag=文件查询选择器(“ul”); const form=docum

很抱歉代码太长,但我从昨晚开始就一直在尝试查找问题。目标是:

  • 当用户输入任何列表值时,它将创建一个包含该值的新列表
  • 当用户单击指定列表的“删除”按钮时,该列表将被删除
  • 当用户在搜索栏中输入任何值时,如果任何列表值等同于搜索输入,则应显示该列表值
  • 问题是,当我在搜索栏中输入一个列表值时,它不会显示任何内容

    const btn=document.querySelector(“输入[type=submit]”);
    const ulTag=文件查询选择器(“ul”);
    const form=document.querySelector(“表单”);
    const search=document.querySelectorAll(“输入”)[0];
    表单。addEventListener(“提交”,createElement);
    search.addEventListener(“键控”,filterItems);
    函数createElement(e){
    e、 预防默认值();
    const input=document.queryselectoral(“输入”)[1];
    常量列表=document.createElement(“li”);
    const removebtn=document.createElement(“按钮”);
    removebtn.className=“btn btn danger btn sm float right delete”;
    lists.className=“li”;
    removebtn.appendChild(document.createTextNode(“X”));
    const listsValue=document.createTextNode(input.value);
    lists.appendChild(removebtn);
    lists.appendChild(listsValue);
    ulTag.appendChild(列表);
    如果(input.value==“”){
    form.removeEventListener(“提交”,createElement);
    }
    }
    函数过滤器项(e){
    const searchInput=e.target.value.toLowerCase();
    让allItems=ulTag.getElementsByTagName(“li”);
    Array.from(allItems.forEach)(列表=>{
    让itemNames=list.firstChild.textContent;
    if(itemNames.toLowerCase().indexOf(searchInput)!=-1){
    list.style.display=“block”;
    }else if(itemNames.toLowerCase().indexOf(searchInput)=-1){
    list.style.display=“无”;
    }
    });
    }
    
    • 一个问题: Ans:ItemName应等于list.lastChild.textContent

      
      

      那么问题是什么?你有什么问题?请阅读此文,并更新你的问题:你在这里试图实现什么?