模拟百度搜索框

模拟百度搜索

 <body>
	<div id="box">
		<input type="text" id="txt" class="txt"/>
		<input type="button" value="搜索" />
		<script>
			function my$(id){
				return document.getElementById(id);
			}		
			//模拟百度搜索
			//创建一个字符数组  模拟关键字 创建一个空数组用来存放新的关键字
			var keyArr=["小明舒服舒服","小红随时随地","小怪到底是","大名花花","大红电放费","大字丰富的凤飞飞"];				
			//键盘抬起事件
			my$("txt").onkeyup=function(){
				//每次键盘抬起都判断一下页面红有没有这个div  必须加不然有bug
				if(my$("dv")){
					my$("box").removeChild(my$("dv"));
				}
				var txt=my$("txt").value;
				var tempArr=[];
				for(var i=0;i<keyArr.length;i++){
					if(keyArr[i].indexOf(txt)==0){
						tempArr.push(keyArr[i]);							
					}
				}
				
				//判断什么时候创建div   当文本框为空或者临时数组为空
				if(this.value.length==0||tempArr.length==0){
					//当有dv时
					if(my$("dv")){
						my$("box").removeChild(my$("dv"));
					}
					return;
				}

				var dvObj=document.createElement("div");
				my$("box").appendChild(dvObj);
				dvObj.id="dv";
				dvObj.style.width="175px";					
				dvObj.style.border="1px solid green";
			
				//遍历创建p
				for(var i=0;i<tempArr.length;i++){
					var pObj=document.createElement("p");
					my$("dv").appendChild(pObj);
					setInnerText(pObj,tempArr[i]);
					pObj.style.cursor="pointer";
					pObj.onmouseover=f1;
					pObj.onmouseout=f2;
				}				
			}
			//优化
			function f1(){
				this.style.backgroundColor="yellow";
			}
			function f2(){
				this.style.backgroundColor="";
			}
						
		</script>
	</div>
</body>
<script>//兼容代码	
	function addEventListener(ele,type,fn){
		if(ele.addEventListener){
			ele.addEventListener(type,fn,false);
		}else if(ele.attachEvent){
			ele.attachEvent("on"+type,fn);
		}else{
			ele["on"+type]=fn;
		}
	}
	function setInnerText(ele,text){
		if(typeof ele.textContent=="undefined"){
			ele.innerText=text; 
		}else{					
			ele.textContent=text;
		}
	}
	function getInnerText(ele){
		if(typeof ele.textContent=="undefined"){
			return ele.innerText;
		}else{					
			return ele.textContent;
		}
	}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值