案例---百度搜索框提示
文章目录
一、代码二、代码解释效果图(百度): 输入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.1script中的函数;添加提示框的函数。提示框用列表来做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>