Searching and highlighting text is simple with jQuery. Here's a basic code for accomplishing this task:
function highlight () {
$('#search').submit(function() {
var $query = $('#search #q').val();
var re = new RegExp($query, 'g');
var targetHtml = $('#text').html();
if(re.test(targetHtml)) {
var matches = targetHtml.match(re);
$('#text').html(targetHtml.replace(re, '<span class="highlight">'+matches[0]+'</span>'));
} else {
alert('Term not found.');
}
return false;
});
}
$(document).ready(function() {
highlight();
});
As you can see, I've used the RegExp object to turn user input into a regular expression. Then
I performed a global search using the test() and match() methods of this object. You
can see the final result here.