自己做了一个根据搜索关键字的首拼来查找的demo;
主要是步骤,是将搜索的结果缓存到本地 我因为是demo,所以用的是sessionStorage,如果用到项目里面得用localStorage
function setinp(){
let value = $("inp").value,
//暂时不用管这个函数里面调用的函数,后面会写全代码
//这里主要用途如果不重复就push,否则什么也不干
list = getlist();
if("" != value && " " != value && null != value){
if(list.length > 0){
let flag = false;
for (let i = 0; i < list.length; i++)
if(value == list[i]) flag = !flag;
if(!flag)list.push(value);
}else{
list.push(value);
}
setlist(list);
}
setcontent(value);
}
然后是将缓存和输入的做对比
window.onload = function(){
sethmain();
$("inp").addEventListener("input", function () {
let value = $("inp").value;
if(value)getlist2();
else sethmain();
})
}
function getlist2(){
let jsonst = "", list = [] , list2 = [],val = $("inp").value,pv = __pinyin.get(val),pvlist = pv.l.split("");
list = getlist();
//重要的地方
//主要用处就是将输入的值与缓存的值对比,是否相似,也就是汉字首字母的对比
//如果是相似,立马结束循环(提高点效率,因为已经用到三层循环了)
//然后将与缓存的相似值从新innerHTML到页面
//比如,输入k 马上就能看到 “裤子”,“亏本”之类的按钮,可以直接点击
//还有一个重要函数是 p2 = __pinyin.get(list[i]);
//这个函数是我在网上下载的,补全了里面的个把文字,我自己在弄一个新连接下载(不要见怪)
for (let i = 0; i < list.length; i++) {
for (let z = 0; z < pvlist.length; z++) {
let flag = true,
p2 = __pinyin.get(list[i]),
p2list = p2.l.