将 jquery 自动完成下拉列表绑定到菜单项

Binding jquery AutoComplete dropdown list to menu items

有一个下拉列表数据,如第一张图片所示。单击列表中的其中一项后,它不会与侧边栏左侧菜单列表绑定。我想让它如第二张图片所示。单击后,它应该搜索菜单列表并找到一个。但是我使用下面的代码,想知道是否有 Jquery 的功能可以做到这一点。

注意:它以某种方式与 google 自动完成功能配合使用。

   $(document).ready(function () {
    $("#leftMenuSearch").autocomplete({
      source: list,
      minLength: 0,
      select: function (event, ui) {
        // that's how get the menu reference:
      }
    }).click(function () {
      console.log("this", this)
      $(this).autocomplete('search', "");
    });
  });

第一张照片

第二张图片

很确定您想要的是过滤器而不是自动完成。

示例:https://jsfiddle.net/Twisty/Lu57qpxh/11/

JavaScript

$(function() {
  function filterTable(tbl, term) {
    $("tbody tr", tbl).show();
    $("tbody tr", tbl).each(function(i, r) {
      if ($("td:eq(0)", r).text().toLowerCase().indexOf(term) < 0) {
        $(r).hide();
      }
    });
  }

  $("#txtsearch").keyup(function() {
    var t = $(this).val().toLowerCase();
    filterTable($("table"), t);
  });
});

这会根据搜索词显示或隐藏 table 中的项目。

更新

如果你想将它与自动完成一起使用,你可以这样做。

示例:https://jsfiddle.net/Twisty/Lu57qpxh/22/

$(function() {
  function filterTable(tbl, term) {
    $("tbody tr", tbl).show();
    $("tbody tr", tbl).each(function(i, r) {
      if ($("td:eq(0)", r).text().toLowerCase().indexOf(term.toLowerCase()) < 0) {
        $(r).hide();
      }
    });
  }

  $("#txtsearch").autocomplete({
    source: ["Spiderman", "Wonder", "hata"],
    select: function(e, ui) {
      filterTable($("table"), ui.item.value);
    }
  }).keyup(function() {
    if ($(this).val() == "") {
      $("table tbody tr").show();
    }
  });
});