【问题标题】:How to Filtering Categories from Autocomplete jQuery如何从自动完成 jQuery 中过滤类别
【发布时间】:2017-01-25 11:07:43
【问题描述】:

我很抱歉之前重复的问题已经存在。 我的问题是过滤我需要的类别或隐藏一些类别, 这是我的数组

var data = [
  { label: "London", category: "Area" },
  { label: "Muenchen", category: "Area" },
  { label: "North London", category: "City" },
  { label: "East London", category: "City" },
  { label: "West London", category: "City" },
  { label: "South London", category: "City" },
  { label: "Lorem London", category: "Hotel Name" },
  { label: "Ipsum East London", category: "Hotel Name" },
  { label: "Hello Hotel", category: "Hotel Name" },
  { label: "Mega Hotel London", category: "Hotel Name" }
];

和我的输出

我想隐藏类别“城市”。如何创建它?有什么建议吗?

这是我的源代码https://jsfiddle.net/dedi_wibisono17/ae5wk1ex/2/ 非常感谢

【问题讨论】:

  • 为什么要“隐藏”?删除这些行更简单。
  • 嗨@eapo 实际上数据存在于API 中,数据非常多,我只显示了其中的一部分。这就是我没有删除它的原因

标签: javascript jquery filter autocomplete filtering


【解决方案1】:

您可以通过使用grep 轻松过滤数组来获得所需的结果。参考: http://api.jquery.com/jquery.grep/

例如:

var filteredData = $.grep(items, function(item,index) {
  return item.category !== 'City';
});
// original code below + change to reference grep'd array
$.each( filteredData, function( index, item ) {
    var li;
    if ( item.category != currentCategory ) {
        ul.append( "<li class='auto-complete'>" + item.category + "</li>" );
        currentCategory = item.category; //buat category
    }
    li = that._renderItemData( ul, item );
    if ( item.category ) {
        li.attr( "aria-label", item.category + " : " + item.label ); //buat item
    }
});

分叉的jsFiddle: https://jsfiddle.net/ppa8em56/

【讨论】:

  • 嗨@Stevangelista 哦谢谢你这对我很有用。哦,我想它会使用过滤器。还是谢谢你的参考
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 2023-04-05
  • 1970-01-01
  • 2014-05-09
相关资源
最近更新 更多