根据输入值/ javascript过滤数组对象

我正在尝试根据用户输入从数组列表中过滤对象,但不确定如何实现。

那是我的html:

  <input id="search" type="text" placeholder="Search..">
    <div id="animallist"></div>

javascript:

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);

}

我不知道是否可能,但是我想这样做,所以它将实时过滤项目,因此如果我C在搜索框中输入字母,那么它将消除数组列表中的其他2个项目并显示只Cat

jsfiddle

Aplet123

您可以将其编辑addLink为具有div.dataset.animalName = animal.name;,并添加以下代码:

search.addEventListener("keyup", function() {
    Array.from(animallist.children).forEach(d => {
    if (d.dataset.animalName.toLowerCase().indexOf(this.value.toLowerCase()) != -1) {
        d.style.display = "block";
    } else {
        d.style.display = "none";
    }
  });
});

参考这个小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据用户输入过滤对象数组值

JavaScript根据属性值过滤对象数组

根据多值对象过滤JavaScript对象数组

根据对象的值输入

根据传递的输入过滤对象数组:JavaScript

根据数组输入过滤对象数组

根据其值过滤JavaScript深度嵌套的对象数组

根据javascript中的键名过滤对象数组

根据内部数组的值过滤对象数组

根据Javascript中数组内对象数组的条件进行过滤

如何根据值过滤对象数组

Javascript-根据存在于单独数组中的键的值过滤对象数组

如何使用javascript根据另一个数组值过滤对象数组?

Javascript或lodash:使用嵌套数组的值过滤对象数组

如何根据对象对象中的键对值过滤对象数组?

根据javascript中字段的值过滤对象

如何使用javaScript根据数组项过滤对象?

如何使用javascript根据另一个数组对象的属性值过滤对象数组

ReactJS根据对象设置动态输入值

如何根据其他数组的值过滤对象数组?

JavaScript,按特定键的值过滤对象数组

在javascript中传递值数组和过滤对象

仅从对象JavaScript数组中过滤唯一值

JavaScript对象数组按属性的最小值进行过滤

Javascript lodash 基于值过滤数组中的对象

按属性值过滤数组中的对象 - Javascript

根据React中的输入字段过滤对象数组

JavaScript根据另一个对象数组的属性过滤对象数组

根据javascript中的另一个对象数组过滤对象数组