56 lines
1.6 KiB
HTML
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> |