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); //将他们的属性去掉;
                });
            });
        }

 

posted @ 2014-11-20 10:55  stevejson  阅读(1730)  评论(0编辑  收藏  举报