![]()
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title></title>
<style type="text/css">
#tipDiv {
border: solid 1px lightgray;
background-color: white;
}
#tipDiv p{
margin:0 ;
}
</style>
<script type="text/javascript">
//1 输入框输入内容时,显示提示div
var searchInput;
var tipDiv;
var selectedIndex = -1;
var oldValue;//记录用户输入的原始的值
window.onload=function(){
searchInput = document.getElementById("searchInput");
tipDiv = document.getElementById("tipDiv");
searchInput.onkeyup=function(){
if(event.keyCode==40 || event.keyCode==38){
if(event.keyCode==40){
selectedIndex++;
}else{
selectedIndex--;
}
if(selectedIndex>=datas.length){
selectedIndex=-1;
}
if(selectedIndex<-1){
selectedIndex=datas.length-1;
}
//选中selectedIndex所指的的那个条目
selectItem(selectedIndex);
}else{
//记录下用户输入的值
oldValue = this.value;
//显示提示层
showItems();
}
}
searchInput.onblur=function(){
tipDiv.style.display="none";
}
}
//选中条目并且更新输入框
function selectItem(index){
var items = tipDiv.getElementsByTagName("p");
for(var i=0;i<items.length;i++){
items.item(i).style.backgroundColor=null;
}
if(index>-1){
items.item(index).style.backgroundColor="lightgray";
searchInput.value = items.item(index).innerHTML;
}else{
searchInput.value = oldValue;
}
}
//认为datas是从服务器拿到的数据
var datas = ["javascript","javascript教程","javascript视频","javascript正则表达式",];
function showItems(){
tipDiv.style.display="block";
//每次重新添加之前都清空原来的内容
tipDiv.innerHTML = "";
var width = searchInput.offsetWidth;
tipDiv.style.width=width+"px";
for(var i=0;i<datas.length;i++){
var item = datas[i];
var p = document.createElement("p");
p.innerHTML = item;
tipDiv.appendChild(p);
}
}
</script>
</head>
<body>
<div>
<input id="searchInput" type="text" />
<input type="submit" value="搜索一下" style="margin-left: 10px">
</div>
<div id="tipDiv" style="display: none"></div>
</body>
</html>