javascript - 当用户搜索某些内容时,如何使用 JavaScript 进行自动完成或建议?

标签 javascript autocomplete search-suggestion

我用 HTML 和 Java 脚本制作了这个,并且需要在用户写下他搜索的单词的第一个字母时出现建议下拉菜单

我怎样才能做到这一点?

   <html>
   <body>
   <input type="text" id="myInput" autofocus="true">
   <button id="btn" onclick="myfunction()">Search</button>
   <div id="outputArea" style="font-size: 30px"></div>
    <script>
     var acronyms = {
      omg: "Oh My God",
      lol: "Lough Out Loud",
      lmao: "Lough My Age Off",
      wtf: "What This Function"
      };
       var outputAreaRef = document.getElementById("outputArea");
         function myfunction(){
         var word = document.getElementById("myInput").value.toLowerCase().trim();
       if (acronyms[word] !== undefined) {word = acronyms[word];}
      outputAreaRef.innerHTML = word;}
      </script>
     </body>
      </html>

最佳答案

有一个 HTML5 元素可以让这变得非常简单。 datalist tag 。您可以对列表中的项目进行硬编码,也可以使用一些 JS 来填充列表。

您可以在数据列表上的其他选项中查看此答案。 Html datalist values from array in javascript

如果您使用 JS 来填充,标记最终的样子如下: <datalist id="browsers"> <option value="Internet Explorer"> <option value="Firefox"> <!-- more items here --> </datalist>

(function(browsers) {

  function addItems (list, container) {
      list.forEach(function(item){
      const option = document.createElement('option');

      option.setAttribute('value', item);
      container.appendChild(option);
    });
  }

  const browserList = ['Internet Explorer','Firefox','Chrome','Opera','Safari','Brave'];
  addItems(browserList, browsers);
}(document.getElementById('browsers')));
<label for="autocomplete">Search for Browsers</label>
<input id="autocomplete" list="browsers">

<datalist id="browsers"></datalist>

关于javascript - 当用户搜索某些内容时,如何使用 JavaScript 进行自动完成或建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52155771/

相关文章:

java - JTextField 的自动建议

javascript - 自定义脚本.js :1 Uncaught ReferenceError: $ is not defined

ios - Xcode 6 自动完成失败(<<错误类型>>)

elasticsearch - 弹性建议中的Umlaut

api - 如何构建自动完成 API?

reactjs - 在 React 的自动完成组件中移动占位符文本

elasticsearch - Elasticsearch带破折号的模糊搜索短语

javascript - AWS 物联网 : Subscribe to Topic in Browser

javascript - 如何仅在收到 props 时渲染 React(使用 Redux)组件?

javascript - 日期分页 Bootstrap