我决定构建自己的javascript自动完成搜索,因为我在数组中有超过120,000个元素的列表,而jQuery UI Autocomplete和jQuery Autocomplete只是对我不起作用。
事实证明,这很容易,并且到目前为止,它有8万个元素,而且确实非常快。 无论如何,我迫切需要在自动完成中引入重音折叠功能,但是我不知道应该如何进行重音折叠以使其保持高效。
这是我的JS:
var arr = ["Wayne Réviér", "Wayne Röllo", "Wayne Rolls", "Wayne Grety", "Wayne Rüm", "Wayne Erry"]; //Example list. var searchBox = document.getElementById('searchBox'); jQuery('#searchBox').on('input propertychange paste', function() { $('div').html(""); var listCounter = 0; setTimeout(function(){ if(searchBox.value.length >= 3) { //restrict to 3+ characters. for (var i = 0; i < arr.length; i++) { //loop through array if( listCounter <= 4) { //only show top 5 results. searchBoxLower = searchBox.value.toLowerCase(); //make comparing easier arrLower = arr[i].toLowerCase(); if(arrLower.indexOf(searchBoxLower) > -1) { listCounter++; //result found. +1 counter. $('div').append(arr[i]+"<br>"); } } } } }, 5); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="searchBox"/> <div> </div>
我如何在其中引入重音折叠? 另外,如果您发现任何可以提高效率的东西,我也很想听听。 谢谢!