js实现查询关键词,使其高亮
今天做了一个功能:在页面上查询关键,使其高亮显示,实现代码如下:
css:
<style type="text/css"> .highlight { background-color: yellow; } </style>
javascript:
function highlight() { clearSelection(); //先清空一下上次高亮显示的内容; var searchText = $.trim($('#txtKeyWord').val()); //获取你输入的关键字; if (searchText.length > 0) { var regExp = new RegExp(searchText, 'g'); //创建正则表达式,g表示全局的,如果不用g,则查找到第一个就不会继续向下查找了; $('#dialogue .dhc').each(function ()//遍历要查询的区域; { var html = $(this).html(); var newHtml = html.replace(regExp, "<span class='highlight'>" + searchText + '</span>'); //将找到的关键字替换,加上highlight属性; $(this).html(newHtml); //更新文章; }); } //prekeyword = searchText; } function clearSelection() { $('#dialogue .dhc').each(function ()//遍历 { $(this).find('.highlight').each(function ()//找到所有highlight属性的元素; { var thishtml = $(this).html(); $(this)[0].outerHTML = thishtml; // $(this).replaceWith(thishtml); //将他们的属性去掉; }); }); }