JavaScript实现百度搜索框提示

案例---百度搜索框提示

效果图(百度): 输入aa后底下就会出现相对应和aa有关系的一些提示。

一、代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>案例---Google提示</title>
	</head>
	<style type="text/css">
		input {
			width: 200px;
		}

		table {
			border: 1px gray solid;
			width: 204px;
		}
	</style>
	<script type="text/javascript">
		function Google() {
			//删除掉原有表格的数据
			removeTbody();
			//获取到文本框内容
			let obj = document.getElementById("i1");
			let tbody = document.getElementById("tbody");
			let val = obj.value; //获得i1中的值
			for (var i = 1; i < 10; i++) {
				let tr = document.createElement("tr");
				let td = document.createElement("td");
				td.innerText = val + i;
				tr.appendChild(td); //将td放入tr中;
				tbody.appendChild(tr); //将tr放入div中;

				//手动添加事件(鼠标移入字体和背景变色)
				tr.onmouseover = function() {
					this.style.color = "blue";
					this.style.backgroundColor = "lightgray";
				}
				tr.onmouseout = function() {
					this.style.color = "";
					this.style.backgroundColor = "";
				}
			}
		}

		function removeTbody() {
			let tbody = document.getElementById("tbody");
			let list = tbody.children; //获取到所有行
			for (var i = list.length - 1; i > -1; i--) {
				tbody.removeChild(list[i]);
			}
		}
	</script>
	<body>
		<!--1. Onkeyup:键盘松开事件
			2. Onkeydown:键盘按下事件
			3. Onkeyperss:键盘一上一下整个事件
		-->
		<input id="i1" onkeyup="Google()" /> <br>
		<table>
			<tbody id="tbody"></tbody>
		</table>
	</body>
</html>

结果: 

二、代码分析

1.0 用来调节输入框和底下提示框的大小以及颜色

<style type="text/css">
		input {
			width: 200px;
		}

		table {
			border: 1px gray solid;
			width: 204px;
		}
	</style>

2.1 script中的函数;添加提示框的函数。提示框用列表来做9行一列的表格来做。

function Google() {
			//删除掉原有表格的数据
			removeTbody();
			//获取到文本框内容
			let obj = document.getElementById("i1");
			let tbody = document.getElementById("tbody");
			let val = obj.value; //获得i1中的值
			for (var i = 1; i < 10; i++) {
				let tr = document.createElement("tr");
				let td = document.createElement("td");
				td.innerText = val + i;
				tr.appendChild(td); //将td放入tr中;
				tbody.appendChild(tr); //将tr放入div中;

 2.2 设置把鼠标移入提示框时,提示框的字体颜色以及背景颜色的变化。这里和百度一样,鼠标移入时字体时蓝色,背景时淡灰色。

//手动添加事件(鼠标移入字体和背景变色)
				tr.onmouseover = function() {
					this.style.color = "blue";
					this.style.backgroundColor = "lightgray";
				}
				tr.onmouseout = function() {
					this.style.color = "";
					this.style.backgroundColor = "";

3.1 删除原有表格的数据。如果不删除就会出现输入新的值后,原有的数据还会在。

function removeTbody() {
			let tbody = document.getElementById("tbody");
			let list = tbody.children; //获取到所有行
			for (var i = list.length - 1; i > -1; i--) {
				tbody.removeChild(list[i]);
			}
		}

3.2 如果没有删除函数就会导致这样的情况:当输入aa时原有的a1~a9还会存在。

3.3 删除时从后往前删除,不能从前往后删除,不然会导致删除不完全(下左图中蓝色框中)。

导致删除不完全是因为,每删除一个元素后,数组的长度就会随之改变。 删除第一个后,后面的元素就会依次向前移一个位置。(下图右边图)

 

4.0 body中内容 input输入框添加onketup事件,用来表示键盘松开时执行Google()函数。还有table表。

<body>
		<!--1. Onkeyup:键盘松开事件
			2. Onkeydown:键盘按下事件
			3. Onkeyperss:键盘一上一下整个事件
		-->
		<input id="i1" onkeyup="Google()" /> <br>
		<table>
			<tbody id="tbody"></tbody>
		</table>
	</body>

  • 15
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值