var timezoneOffset = 0; //记录按键时间 var keyCache = ""; //记录连续按下的字母组合 //当按下键盘字母时进行搜索 document.onkeydown = function(event){ //通过“event.keyCode”得到按下的实际字母 var key = String.fromCharCode(event.keyCode); var tz = new Date().getTime(); //连续按键延迟计算,这里设置为1000毫秒,即1秒 if (tz - timezoneOffset > 1000){ //延迟超过一秒,则重新计时 timezoneOffset = tz; keyCache = key; }else{ //延迟在1秒范围内,则累加筛选字符 keyCache += key; } //获取筛选内容长度 var keyLength = keyCache.length; var word = ""; //记录符合条件的中文字词 //遍历索引,执行查找 for (var i = 0; i < nameList.length; i++){ //截取等长字符与筛选字母组合进行比较 if (nameList[i][0].substr(0, keyLength) == keyCache){ if (word == ""){ word += nameList[i][1]; //对查找结果高亮显示,第一个符合条件的结果要清除之前的高亮显示,所以这里第二个参数传递为:true highlight(nameList[i][1].substr(0, keyLength), true); }else{ word += " " + nameList[i][1]; highlight(nameList[i][1].substr(0, keyLength), false); } } } //在div中显示筛选字母组合 var div = document.getElementById("divKeyCache"); if (div){ div.innerHTML = "筛选字母组合:" + keyCache; } }
高亮显示代码: