JS实现模糊查询带下拉匹配效果查询地址
时间: 2023-12-24 09:06:09 浏览: 82
JS实现模糊查询带下拉匹配效果
要实现带下拉匹配效果的模糊查询地址功能,可以使用 HTML、CSS 和 JavaScript 来实现。下面是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>模糊查询地址</title>
<style>
/* 下拉列表样式 */
.autocomplete-items {
position: absolute;
border: 1px solid #d4d4d4;
border-bottom: none;
border-top: none;
z-index: 99;
/* 设置下拉列表宽度与输入框相同 */
top: 100%;
left: 0;
right: 0;
}
/* 下拉列表项样式 */
.autocomplete-items div {
padding: 10px;
cursor: pointer;
background-color: #fff;
border-bottom: 1px solid #d4d4d4;
}
/* 下拉列表项鼠标悬停样式 */
.autocomplete-items div:hover {
background-color: #e9e9e9;
}
/* 输入框样式 */
input[type=text] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
}
</style>
</head>
<body>
<h2>模糊查询地址</h2>
<!-- 输入框 -->
<div class="autocomplete">
<input type="text" id="myInput" placeholder="请输入地址">
<!-- 下拉列表 -->
<div id="myDropdown" class="autocomplete-items"></div>
</div>
<script>
// 假设有一个地址列表
let addresses = [
'北京市海淀区中关村南大街5号',
'上海市浦东新区世纪大道100号',
'广州市天河区珠江新城华夏路1号'
];
// 获取输入框和下拉列表
let input = document.getElementById('myInput');
let dropdown = document.getElementById('myDropdown');
// 监听输入框输入事件
input.addEventListener('input', function () {
let value = this.value;
dropdown.innerHTML = '';
// 如果输入框有值
if (value) {
// 使用正则表达式进行匹配
let pattern = new RegExp(value, 'i'); // i 表示忽略大小写
let filtered = addresses.filter(address => pattern.test(address));
// 如果有匹配结果
if (filtered.length > 0) {
// 创建下拉列表项并添加到下拉列表中
filtered.forEach(address => {
let option = document.createElement('div');
option.innerHTML = address;
option.addEventListener('click', function () {
// 点击下拉列表项后将选中的地址显示在输入框中
input.value = address;
dropdown.innerHTML = '';
});
dropdown.appendChild(option);
});
}
}
});
</script>
</body>
</html>
```
这段代码中使用了 HTML、CSS 和 JavaScript 实现了一个带下拉匹配效果的模糊查询地址功能。用户在输入框中输入关键字后,程序会根据关键字在地址列表中进行匹配并显示匹配结果,用户可以点击下拉列表中的地址将其填入输入框中。
阅读全文