0


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>


本文转载自: https://blog.csdn.net/weixin_55166132/article/details/123645606
版权归原作者 不爱健身的数学子弟不是好程序员 所有, 如有侵权,请联系我们删除。

“JavaScript实现百度搜索框提示”的评论:

还没有评论