JavaScript 制作百度输入预测功能

简介: JavaScript 制作百度输入预测功能

示例



代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
    <style>
        #box {
            width: 450px;
            margin: 200px auto;
        }
        #txt {
            width: 350px;
        }
        #pop {
            width: 350px;
            border: 1px solid red;
        }
        #pop ul {
            margin: 10px;
            padding: 0px;
            width: 200px;
            list-style-type: none;
        }
        #pop ul li {
        }
    </style>
</head>
<body>
<div id="box">
    <input type="text" id="txt" value="">
    <input type="button" value="百度一下" id="btn">
</div>
<script src="common.js"></script>
<script>
    var keyWords = ["小杨最纯洁", "小杨一点也不追名逐利", "小李是大家的", "小快好快", "华为这一波很6", "花儿笑了", "苹果禁用微信,用户纷纷下载QQ"];
    // 获取文本框注册键盘抬起事件
    my$("txt").onkeyup = function () {
        // 每一次的键盘抬起都判断页面中有没有这个div
        if (my$("dv")) {
            // 有就删除
            my$("box").removeChild(my$("dv"));
        }
        // 获取文本输入的内容
        var text = this.value;
        // 创建临时数组来存放对应上的数据
        var tempArr = [];
        for (var i = 0; i < keyWords.length; i++) {
            // 判断是否是最开始出现的
            if (keyWords[i].indexOf(text) == 0) {
                tempArr.push(keyWords[i]);//追加
            }
        }
        // 如果文本框是空的,临时数组是空的,则不用创建div
        if (this.value.length == 0 || tempArr.length == 0) {
            //如果页面中有这个div,删除这个div
            if (my$("dv")) {
                my$("box").removeChild(my$("dv"));
            }
            return;
        }
        // 创建div,把div加入到box中的div中
        var dvObj = document.createElement("div");
        my$("box").appendChild(dvObj);
        dvObj.id = "dv";
        dvObj.style.width = "350px";
        dvObj.style.border = "1px solid green";
        //循环遍历临时数组,创建对应的p标签
        for (var i = 0; i < tempArr.length; i++) {
            // 创建p标签
            var pObj = document.createElement("p");
            // 把p加到div中
            dvObj.appendChild(pObj);
            setInnerText(pObj, tempArr[i]);
            pObj.style.margin = 0;
            pObj.style.padding = 0;
            pObj.style.cursor = "pointer";
            pObj.style.marginTop = "5px";
            pObj.style.marginLeft = "5px";
            // 添加鼠标进入事件
            pObj.onmouseover = function () {
                this.style.backgroundColor = "yellow";
            }
            //鼠标离开
            pObj.onmouseout = function () {
                this.style.backgroundColor = "";
            };
        }
    }
</script>
</body>
</html>
相关文章
|
12天前
|
JavaScript
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
```markdown # CAD网页编程概览 - 使用mxcad库,实现CAD操作如删除、复制、镜像、移动和旋转。 - `erase()`方法删除实体,`clone()`配合`transformBy()`用于复制和编辑。 - `mirror()`和`transformBy(setMirror)`执行镜像操作,基于参考线。 - `move()`和`transformBy(setToTranslation)`实现移动功能。 - `rotate()`和`transformBy(setToRotation)`进行旋转,支持角度输入。 ```
网页CAD(JS Vue 预览dwg)如何二次开发常用的CAD编辑功能
|
6天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的多功能智能手机阅读APP附带文章源码部署视频讲解等
10 1
|
19天前
|
JSON 缓存 前端开发
JavaScript 新特性:新增声明命令与解构赋值的强大功能
JavaScript 新特性:新增声明命令与解构赋值的强大功能
|
22天前
|
SQL Web App开发 JavaScript
业务功能常用的JS代码片段
业务功能常用的JS代码片段
16 3
|
29天前
|
移动开发 JavaScript 前端开发
Phaser和Three.js是两个非常流行的JavaScript游戏框架,它们各自拥有独特的核心功能和使用场景
【6月更文挑战第16天】Phaser是开源的2D游戏引擎,适合HTML5游戏,提供物理引擎、图像渲染和资源管理,适用于2D游戏,如消消乐。Three.js是基于WebGL的3D库,用于创建复杂的3D场景和应用,涵盖从游戏到可视化领域的多种用途。两者分别在2D和3D开发中展现强大功能,选择取决于项目需求。
22 8
|
1月前
|
JavaScript 前端开发
JS导出excel功能
JS导出excel功能
|
1月前
|
JavaScript Serverless
JS实现递归功能
JS实现递归功能
|
1月前
|
JavaScript
JS实现分页功能
JS实现分页功能
|
13天前
|
前端开发 JavaScript
前端 JS 经典:封装全屏功能
前端 JS 经典:封装全屏功能
7 0
|
1月前
|
JavaScript 前端开发