jQuery 是一个快速、简洁的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。要实现全页面数据搜索并显示,我们需要理解以下核心概念:
$(document).ready(function() {
// 搜索函数
function searchAllPages(query) {
// 隐藏所有内容
$('body *').hide();
// 显示匹配的元素及其祖先
$('body *:contains(' + query + ')').each(function() {
$(this).show();
$(this).parents().show();
});
}
// 绑定搜索事件
$('#search-button').click(function() {
var query = $('#search-input').val();
searchAllPages(query);
});
});
$(document).ready(function() {
var currentPage = 1;
var totalPages = 0;
var searchResults = [];
// 搜索所有页面数据
function searchAllData(query) {
$.ajax({
url: '/api/search',
method: 'GET',
data: { q: query },
success: function(response) {
searchResults = response.results;
totalPages = response.totalPages;
displayResults(searchResults.slice(0, 10)); // 显示第一页
}
});
}
// 显示结果
function displayResults(results) {
$('#results-container').empty();
$.each(results, function(index, item) {
$('#results-container').append(
'<div class="result-item">' +
'<h3>' + item.title + '</h3>' +
'<p>' + item.content + '</p>' +
'</div>'
);
});
}
// 分页控制
function goToPage(page) {
var start = (page - 1) * 10;
var end = start + 10;
displayResults(searchResults.slice(start, end));
currentPage = page;
updatePagination();
}
// 更新分页UI
function updatePagination() {
$('#pagination').empty();
for (var i = 1; i <= totalPages; i++) {
$('#pagination').append(
'<button class="page-btn' + (i === currentPage ? ' active' : '') +
'" data-page="' + i + '">' + i + '</button>'
);
}
}
// 事件绑定
$('#search-button').click(function() {
var query = $('#search-input').val();
searchAllData(query);
});
$(document).on('click', '.page-btn', function() {
goToPage(parseInt($(this).data('page')));
});
});
原因:
解决方案:
原因:
解决方案:
// 更精确的搜索实现
function preciseSearch(query) {
var regex = new RegExp(query, 'gi');
$('body *').each(function() {
if ($(this).text().match(regex)) {
$(this).addClass('search-match');
}
});
$('.search-match').show().parents().show();
}
原因:
解决方案:
// 高亮显示实现示例
function highlightMatches(text, query) {
var regex = new RegExp('(' + query + ')', 'gi');
return text.replace(regex, '<span class="highlight">$1</span>');
}
通过以上方法和代码示例,您可以实现一个功能完善的全页面数据搜索和显示系统。
没有搜到相关的文章