Javascript 如何访问函数中的数组?
我正在开发我的待办事项列表应用程序。大部分都很好,但我还是有这个问题 (未捕获的TypeError:无法读取未定义的属性)。由于某些原因,我还无法理解,我无法将数组Javascript 如何访问函数中的数组?,javascript,arrays,function,Javascript,Arrays,Function,我正在开发我的待办事项列表应用程序。大部分都很好,但我还是有这个问题 (未捕获的TypeError:无法读取未定义的属性)。由于某些原因,我还无法理解,我无法将数组toDoList传递给searchList函数,以便为我的动态搜索功能过滤相关元素。有人愿意帮忙吗 const button=document.querySelector(“按钮”); 让toDoList=[]; 常量输入=document.querySelector(“.add”); const search=document.q
toDoList
传递给searchList
函数,以便为我的动态搜索功能过滤相关元素。有人愿意帮忙吗
const button=document.querySelector(“按钮”);
让toDoList=[];
常量输入=document.querySelector(“.add”);
const search=document.querySelector(“.search”);
const ul=文件查询选择器(“ul”);
const removeBtn=document.getElementsByClassName(“删除”);
const span=document.querySelector(“h1 span”);
常数键=0
常量附加项=(e)=>{
e、 预防默认值()
ul.innerHTML=“”
toDoList.push(input.value)
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}
const searchList=(e,toDoList)=>{
ul.innerHTML=“”
如果(search.value==“”){
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}否则{
const searchText=e.target.value.toLowerCase();
console.log(searchText);
console.log(toDoList);
让result=toDoList.filter(li=>li.textContent.toLowerCase().includes(searchText))
console.log(结果)
}
}
const removietem=(e)=>{
e、 target.parentNode.remove();
const index=e.target.parentNode.dataset.key;
toDoList.splice(索引,1)
span.textContent=toDoList.length;
}
按钮。addEventListener(“单击”,addItem);
search.addEventListener(“输入”,搜索列表)
多达吉·扎达尼
利兹巴·扎达南:
从searchList const searchList=(e,toDoList)=>{
中的参数中删除toDoList
,并从li.textContent.toLowerCase()中删除textContent
const button=document.querySelector(“按钮”);
让toDoList=[];
常量输入=document.querySelector(“.add”);
const search=document.querySelector(“.search”);
const ul=文件查询选择器(“ul”);
const removeBtn=document.getElementsByClassName(“删除”);
const span=document.querySelector(“h1 span”);
常数键=0
常量附加项=(e)=>{
e、 预防默认值()
ul.innerHTML=“”
toDoList.push(input.value)
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}
const searchList=(e)=>{
ul.innerHTML=“”
如果(search.value==“”){
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}否则{
const searchText=e.target.value.toLowerCase();
console.log(searchText);
console.log(toDoList);
让result=toDoList.filter(li=>li.toLowerCase().includes(searchText));
console.log(结果)
}
}
const removietem=(e)=>{
e、 target.parentNode.remove();
const index=e.target.parentNode.dataset.key;
toDoList.splice(索引,1)
span.textContent=toDoList.length;
}
按钮。addEventListener(“单击”,addItem);
search.addEventListener(“输入”,搜索列表)
托多利斯特
多达吉·扎达尼
利兹巴·扎达南:
从函数参数中删除toDoList
常量搜索列表=(e,toDoList)>>>>常量搜索列表=(e)=>
当您试图根据不在本问题答案范围内的搜索字符串筛选li
s时,这将引发另一个异常;您全局存储了toDoList
,因此定义名为toDoList
的函数变量时,会在该范围内用传入的内容重写它(这算不了什么,所以它是未定义的
)。正如其他人所说,只需从搜索列表
中删除参数就足够了
我还试图整理代码,使其更具可读性,并添加了缺少的分号。它们不是可选的!;-)
const button=document.querySelector(“按钮”);
常量输入=document.querySelector(“.add”);
const search=document.querySelector(“.search”);
const ul=文件查询选择器(“ul”);
const removeBtn=document.getElementsByClassName(“删除”);
const span=document.querySelector(“h1 span”);
风险值toDoList=[];
常数键=0;
常量附加项=(e)=>{
e、 预防默认值();
ul.innerHTML=“”;
toDoList.push(输入值);
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”);
task.dataset.key=key++;
task.className=“task”;
task.innerHTML=toDoElement+“删除”;
task.querySelector(“按钮”).addEventListener(“单击”,删除项);
ul.儿童(任务);
span.textContent=toDoList.length;
});
}
const removietem=(e)=>{
e、 target.parentNode.remove();
const index=e.target.parentNode.dataset.key;
toDoList.拼接(索引1);
跨度