Files
ClassContent/历届学生/fontendsix/项目练习/上课项目/搜索建议/index.html
2024-09-27 02:06:13 +08:00

56 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>搜索建议</title>
</head>
<body>
<input type="text" placeholder="请输入关键字">
<ul>
</ul>
</body>
<script>
// 1: 给input绑定 oninput 输入框的输入事件 ,在用户输入的时候实时获取输入的 关键字
// 2: 定义一个数组,存放很多不同的搜索建议,拿 关键字 到 数组中去查找是否包含关键字的搜索建议
// 存放到新数组
// 3: 渲染新数组到页面
// 4: 主要是进行字符串替换,把用户输入的关键字替换成带标签和颜色的
var keyWord = $("input");
var keyWordList = ['今天天气真好', '你真好', '天气是阴天', 'js学习', '不想学习js', '学习html', '学不会html'];
var result;
keyWord.oninput = () => {
result = [];
if (keyWord.value.length != 0) {
keyWordList.forEach(v => {
if (v.indexOf(keyWord.value) != -1) {
var newVal = v.replaceAll(keyWord.value, `<span style='color: red;'>${keyWord.value}</span>`)
result.push(newVal)
}
})
}
renderResult()
}
function renderResult() {
$("ul").innerHTML = ""
result.forEach(v => {
$("ul").innerHTML += `<li>${v}</li>`
})
}
function $(className) {
return document.querySelector(className)
}
</script>
</html>