最近在ie8碰到一个射流研究…问题,需要实现(ie8)使用拼音或者拼音首字母来检索挑选中的内容,原来的组合框只能支持汉字输入检索,现在需要进行改进,现在我将一步一步的实现方法记录下来,功能简单,也可能有病菌和不足,供学习参考。(本文只是提供思路学习和备份,实际情况需要在ie8或者工程师协会兼容模式上使用,所以没有考虑到别的浏览器)
目录结构:
试验
| - js
|-index.html
在指数页面中添加
index.html
!DOCTYPE html html head meta charset=' utf-8 '/title/title script type=' text/JAVAScript ' src=' http : js/autocomplete。js/script脚本类型=' text/JavaScript '/script/head body输入类型=' text ' id=' TxTDisplay '/select id=' city '选项值='1 '北京/option选项值='2 '上海/option选项值='3 '广州/option选项值='4 '深圳/option选项值='5 '重庆/option选项值='6 '天津/option选项值='7 '沈阳/option选项值='8 '南京/option选项值='9 '武汉/option选项值='10 '长春/option选项值='11 '成都/option选项值='12 '大连/option选项值='13 '杭州/option选项值='14 '青岛/option选项值='15'a济南/option选项值='16 '厦门/option选项值='17 '福州/option选项值='18 '西安/option选项值='19 '长沙/option选项值='20 '哈尔滨/选项/选择/正文/html
效果:开始将挑选的下拉列表框隐藏,当点击投入文本框的时候显示到投入框的下面,选择完成后再将挑选隐藏。
射流研究…实现:
如果一个页面有多个地方需要实现这样的功能,这个时候就要使用面向对象的思维,尽可能代码重用,我们需要自定义一个美国联合通讯社(美联社的缩写)这样的集合。
autoComplete.js
函数映射(){/* * *存放键的数组(遍历用到)*/这个。key=new Array();/** 存放数据*/这个。数据=新对象();/** * 放入一个键值对* @ param { String }键* @ param { Object }值*/this。put=function(key,value){ if(this。data[key]==null){ this。钥匙。推(键);}这个。数据[键]=值;};/** * 获取某键对应的值* @ param { String }键* @返回{ Object }值*/this。get=function(key){返回这个。数据[密钥];};/** * 删除一个键值对* @ param { String }键*/this。remove=function(key){ this。钥匙。移除(键);这个。数据[键]=null;};/** * 遍历地图,执行处理函数* * @参数{函数}回调函数函数(键、值、索引){ 0.} */这个。每个=函数(fn){ if(fn的类型!=' function '){ return;} var len=this。钥匙。长度;for(var I=0;伊琳;I){ var k=这个。钥匙[I];fn(k,this.data[k],I);} };/** * 获取键值数组