【发布时间】:2018-06-07 14:41:59
【问题描述】:
我正在尝试制作一个 javascript 搜索栏过滤器。我在这里有这 5 个足球俱乐部的名称,我想创建一个搜索栏,这样如果我输入例如“F”,则只有俱乐部:“Feyenoord”可见。
HTML 代码:
<form class="search-name">
<input type="text" placeholder="Search club">
</form>
Javascript 代码:
const $searchBar = document.querySelector(`.search-name`);
$searchBar.addEventListener(`keyup`, function(e){
const term = e.target.value.toLowerCase();
const clublists = list.getElementsByClassName(`club-info`);
Array.from(clublists).forEach(function(clublist){
const clubname = clublist.firstElementChild.textContent;
if(clubname.toLowerCase().includes(term) != -1){
clublist.style.display = `block`;
} else {
clublist.style.display = `none`;
}
})
});
当我开始在搜索栏中输入时,这是我在控制台中得到的错误:
未捕获的引用错误:
list未定义 在 HTMLFormElement。 (scriptp.js:39)
这是第 39 行:
const $clublists = list.getElementsByClassName(`club-info`);
【问题讨论】:
-
你在哪里定义
list? -
@dgig 我正在从“.club-info”类的所有元素中创建一个列表,并将其保存在 const clublists 中
-
对不起@T.J.Crowder。我不知道。我以后不会再这样做了。问题已解决!
标签: javascript list filter ecmascript-6