html代码
//渲染页面
function getTotalList(){
var html=''
for(i=0;i<List.length;i++){
var element = List[i]
html+='<li class="list_item" type="'+ element.type +'" onclick="fuWuChange(this)" >'+element.name+'</li>'
}
$('.yyyz_ul').html(html)
}
js代码
var SumList =[lsList,cyList,whList,mrList,ylList,nyList,cwList]
var lsList =['便利店','超市','母婴用品店','药店','书店','农资经营店','茶叶零售店','眼镜店','烟酒行']
var cyList =['小餐饮','烘焙房/面包房/蛋糕店','咖啡店/茶馆/奶茶店','酒吧','饭店','食堂','现制现售食品店']
var whList =['健身房/健身馆(含游泳馆)','宾馆/酒店/旅馆','书店','电影院','休闲农庄']
var mrList =['美容美发店']
var ylList =['网吧/网咖','歌舞娱乐场所','游艺娱乐场所']
var nyList =['农资经营店']
var cwList =['宠物店/宠物医院']
//因为要找到标签与数组的共同之处,因为标签中的type的值就对应着数组里面的内容,所以向数组头部添加type值
lsList.unshift('ls')
cyList.unshift('cy')
whList.unshift('wh')
mrList.unshift('mr')
ylList.unshift('yl')
nyList.unshift('ny')
cwList.unshift('cw')
//点击搜索之后触发的函数
function Search(){
for(i = 0 ;i<SumList.length;i++){
//原本用的是includes函数来检验,但是一直逻辑错误,所以用了match(字符串的方法)
if(SumList[i].join().match($('.ipt').val())){
var t= SumList[i].slice(0,1).join()//是数组要转换为字符串
console.log(t); // ls/cy/wh/mr/yl/ny/cw
//使用属性选择器让对应的标签高亮
$('li[type="'+t+'"]').addClass('active').siblings().removeClass('active')
} else{
}
}
}
总结
一个乌龙,includes是字符串的方法,我把它当成了数组的方法,所以没有生效,被自己蠢哭了,找了半天错误