尊敬的成员们,
我正在使用一个模板纯HTML设计网站。
在其中,我有一个文本框[搜索]和一个前往按钮。
我希望实现这样的操作:当任何人输入某些文本并按下“前往”按钮时, 它应该突出显示与该文本匹配的网站中的文本。
我该如何做到这一点?
谢谢。
尊敬的成员们,
我正在使用一个模板纯HTML设计网站。
在其中,我有一个文本框[搜索]和一个前往按钮。
我希望实现这样的操作:当任何人输入某些文本并按下“前往”按钮时, 它应该突出显示与该文本匹配的网站中的文本。
我该如何做到这一点?
谢谢。
$(document).ready(function(){
$('#searchItem').keyup(function(){
var name = $(this).val();
var pattern = name.toLowerCase();
var targetId = "";
var divs = document.getElementsByClassName("item");
$(document).find('.item').hide();
$('.item').each(function(i){
var para = divs[i].getElementsByTagName("p");
var index = para[0].innerText.toLowerCase().indexOf(pattern);
if (index != -1) {
$(this).show();
}
});
});
});
您没有发布您拥有的内容。我认为这就是您所提到的内容。
请检查此内容。我可以为您完成,但您必须根据自己的想法来执行它。
function highlightInElement(elementId, text){
var elementHtml = document.getElementById(elementId).innerHTML;
var tags = [];
var tagLocations= [];
var htmlTagRegEx = /<{1}\/{0,1}\w+>{1}/;
//Strip the tags from the elementHtml and keep track of them
var htmlTag;
while(htmlTag = elementHtml.match(htmlTagRegEx)){
tagLocations[tagLocations.length] = elementHtml.search(htmlTagRegEx);
tags[tags.length] = htmlTag;
elementHtml = elementHtml.replace(htmlTag, '');
}
//Search for the text in the stripped html
var textLocation = elementHtml.search(text);
if(textLocation){
//Add the highlight
var highlightHTMLStart = '<span class="highlight">';
var highlightHTMLEnd = '</span>';
elementHtml = elementHtml.replace(text, highlightHTMLStart + text + highlightHTMLEnd);
//plug back in the HTML tags
var textEndLocation = textLocation + text.length;
for(i=tagLocations.length-1; i>=0; i--){
var location = tagLocations[i];
if(location > textEndLocation){
location += highlightHTMLStart.length + highlightHTMLEnd.length;
} else if(location > textLocation){
location += highlightHTMLStart.length;
}
elementHtml = elementHtml.substring(0,location) + tags[i] + elementHtml.substring(location);
}
}
//Update the html of the element
document.getElementById(elementId).innerHTML = elementHtml;
}
highlightInElement("fatDoggie","The dog is really really fat");
highlightInElement("Element","Var");
中。你的意思是你有一个单页网站吗?在这种情况下,整个内容已经加载到页面上了,你只需要搜索它。你可以使用Javascript和JQuery轻松地做到这一点。只需捕获按钮点击事件,遍历DOM查找您的字符串,然后对其进行某些操作(例如,滚动到该位置或将其突出显示)。
如果你有多个页面,那么这将更具挑战性,因为你没有所有客户端可用的内容。在这种情况下,最好使用服务器端搜索解决方案。