基于输入值/javascript筛选数组对象
我试图根据用户输入从数组列表中筛选对象,但我不确定如何实现这一点 这是我的html:基于输入值/javascript筛选数组对象,javascript,Javascript,我试图根据用户输入从数组列表中筛选对象,但我不确定如何实现这一点 这是我的html: <input id="search" type="text" placeholder="Search.."> <div id="animallist"></div> 我不知道这是否可行,但我想这样做,这样它会实时过滤项目,所以如果我在搜索框中输入字母C,那么它会删除数组列表中的其他两个项目,并只显示Cat 您可以编辑addLink以使div.dataset.an
<input id="search" type="text" placeholder="Search..">
<div id="animallist"></div>
我不知道这是否可行,但我想这样做,这样它会实时过滤项目,所以如果我在搜索框中输入字母C,那么它会删除数组列表中的其他两个项目,并只显示Cat
您可以编辑addLink以使div.dataset.animalName=animal.name;,并添加以下代码:
search.addEventListenerkeyup,函数{
Array.fromanimallist.children.forEachd=>{
如果d.dataset.animalName.toLowerCase.indexOfthis.value.toLowerCase!=-1{
d、 style.display=块;
}否则{
d、 style.display=无;
}
};
};
请参阅。您可以编辑addLink以使div.dataset.animalName=animal.name;,并添加以下代码:
search.addEventListenerkeyup,函数{
Array.fromanimallist.children.forEachd=>{
如果d.dataset.animalName.toLowerCase.indexOfthis.value.toLowerCase!=-1{
d、 style.display=块;
}否则{
d、 style.display=无;
}
};
};
请参阅。您也可以执行以下操作: 常数动物=[{ 姓名:猫, 有用:没有 }, { 姓名:狗,, 有用:是的 }, { 名称:鱼,, 有用:没有 } ]; const select=document.queryselector搜索; const AnimalList=document.querySelectoranimallist; select.onkeyup=函数搜索{ 常数{ 价值 }=选择; 如果值{ 动物过滤器{ 名称 } => { 如果name.toUpperCase.indexOfvalue.toUpperCase>-1{ AnimalList.innerHTML=名称 } } }否则{ AnimalList.innerHTML=重试。。。; } } 动物学家{ 边缘顶部:10px; 填充:10px; 背景:8e44ad; 颜色:fff; }
搜索动物…您还可以执行以下操作: 常数动物=[{ 姓名:猫, 有用:没有 }, { 姓名:狗,, 有用:是的 }, { 名称:鱼,, 有用:没有 } ]; const select=document.queryselector搜索; const AnimalList=document.querySelectoranimallist; select.onkeyup=函数搜索{ 常数{ 价值 }=选择; 如果值{ 动物过滤器{ 名称 } => { 如果name.toUpperCase.indexOfvalue.toUpperCase>-1{ AnimalList.innerHTML=名称 } } }否则{ AnimalList.innerHTML=重试。。。; } } 动物学家{ 边缘顶部:10px; 填充:10px; 背景:8e44ad; 颜色:fff; }
搜索一只动物…你知道如果我必须根据数字过滤对象,那该怎么办吗?假设我想输入数字并显示所有等于或优于输入值的项目?什么数字?你能说得更具体一点吗?假设我的数组列表中有另一个字段,它包含一个数值,例如price,What if语句,我需要能够根据价格过滤列表中的项目。我将在搜索输入中输入的值将显示具有相同值或更高值的所有项目>=。然后,您可以编辑addLink并添加div.dataset.price=animal.price,然后将过滤器编辑为parseIntd.dataset.price,10>=parseIntthis.value,10。您可以将行更改为this.value.length==0 | | parseIntd.dataset.animalPrice,10>=parseIntthis.value,10您知道如果要根据数字筛选对象,我必须使用什么样的if语句吗?假设我想输入数字并显示所有等于或优于输入值的项目?什么数字?你能说得更具体一点吗?假设我的数组列表中有另一个字段,它包含一个数值,例如price,What if语句,我需要能够根据价格过滤列表中的项目。我将在搜索输入中输入的值将显示具有相同值或更高值的所有项目>=。然后,您可以编辑addLink并添加div.dataset.price=animal.price,然后将过滤器编辑为parseIntd.dataset.price,10>=parseIntthis.value,10。您可以将行更改为this.value.length==0 | | parseIntd.dataset.animalPrice,10>=parseIntthis.value,10该方法不满足OPs要求。。。因此,如果我在搜索框中输入字母C,那么它将删除数组列表中的其他两项,并仅显示Cat。该方法不满足OPs要求。。。因此,如果我在搜索框中输入字母C,那么它将删除数组列表中的其他两项,并且只显示Cat。
const animals = [{
name: "Cat",
useful: "no"
},
{
name: "Dog",
useful: "yes"
},
{
name: "Fish",
useful: "no"
}
]
animals.forEach(addLink);
function addLink(animal, i) {
const div = document.createElement('div');
const animalList = document.createElement('h2');
animalList.innerHTML = animal.name + " " +"-"+"useful?" + " "+ animal.useful;
animalList.style.cssText = "text-align:center;"
div.appendChild(animalList);
animallist.appendChild(div);
}