当用户在id为keyword的input元素中输入内容时,利用jQuery的Ajax技术,筛选出后端data.json文件中包含用户输入内容的数据。然后将筛选出的数据作为文本内容创建li元素并插入到id为list的ul标签中。
HTML内容:
关键字:<input id="keyword" type="text">
<div id="contain">
<ul id="list"></ul>
</div>
data.json文件:
{
"0": "Head First HTML与CSS",
"1": "JavaScript高级程序设计",
"2": "JavaScript DOM编程艺术",
"3": "高性能网站建设进阶指南",
"4": "高性能网站建设指南",
"5": "Web前端黑客技术揭秘",
"6": "JavaScript权威指南",
"7": "精通CSS",
"8": "编写可维护的JavaScript",
"9": "高性能JavaScript"
}
<input id="keyword" type="text">
<div id="contain">
<ul id="list"></ul>
</div>
<script>
// 数据源
var data = {
"0": "Head First HTML与CSS",
"1": "JavaScript高级程序设计",
"2": "JavaScript DOM编程艺术",
"3": "高性能网站建设进阶指南",
"4": "高性能网站建设指南",
"5": "Web前端黑客技术揭秘",
"6": "JavaScript权威指南",
"7": "精通CSS",
"8": "编写可维护的JavaScript",
"9": "高性能JavaScript"
};
var keywordInput = document.getElementById('keyword');
var listContainer = document.getElementById('list');
keywordInput.addEventListener('input', function(e) {
var keyword = e.target.value;
var matchedItems = [];
// 匹配数据源中的项
for (var key in data) {
if (data[key].toLowerCase().includes(keyword.toLowerCase())) {
matchedItems.push(data[key]);
}
}
// 构建自动完成提示列表
listContainer.innerHTML = '';
if (keyword && matchedItems.length > 0) {
matchedItems.forEach(function(item) {
var li = document.createElement('li');
li.textContent = item;
listContainer.appendChild(li);
});
}
});
</script>
不知道你这个问题是否已经解决, 如果还没有解决的话:使用jQuery的Ajax技术实现从文本框中输入内容,然后筛选出data.json文件中包含用户输入的数据,并将筛选出的数据作为文本内容创建li元素插入到指定的ul标签中的步骤如下:
<input type="text" id="search-box">
<ul id="result-list"></ul>
$('#search-box').on('input', function() {
var searchValue = $(this).val();
// 筛选数据的代码将在下一步实现
});
$.ajax({
url: 'data.json',
dataType: 'json',
success: function(data) {
// 筛选数据的代码将在下一步实现
}
});
var filteredData = data.filter(function(item) {
return item.name.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
});
var resultList = $('#result-list');
resultList.empty();
filteredData.forEach(function(item) {
var li = $('<li></li>').text(item.name);
resultList.append(li);
});
完整代码如下:
<input type="text" id="search-box">
<ul id="result-list"></ul>
<script>
$('#search-box').on('input', function() {
var searchValue = $(this).val();
$.ajax({
url: 'data.json',
dataType: 'json',
success: function(data) {
var filteredData = data.filter(function(item) {
return item.name.toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
});
var resultList = $('#result-list');
resultList.empty();
filteredData.forEach(function(item) {
var li = $('<li></li>').text(item.name);
resultList.append(li);
});
}
});
});
</script>
请注意,上述代码假设data.json文件中包含一个名为name的属性,用于存储需要进行筛选的数据。如果实际情况有所不同,请根据需要修改代码。