使用CSS或jQuery搜索并突出显示文本背景

时间:2014-03-14 10:07:28

标签: javascript jquery html css

我有div包含一些文字:

<div>Some text here</div>

我还有一个文本框,用户将在其中输入搜索字符串。

是否有CSS方法为匹配在搜索字段中输入的特定关键字的文字字符串设置background-color属性?

我目前所做的是使用JavaScript查找和替换。我准备好为此使用jQuery。

5 个答案:

答案 0 :(得分:3)

找到此jQuery plugin called SearchHighlight

这是代码

<强> CSS

<style type='text/css'>
 span.hilite {background:yellow}
</style>

<强>的JavaScript

<script src='SearchHighlight.js'></script>
<script type='text/javascript'>
  $(function(){
      $('#textBoxId').keyup(function () {
          var val = $(this).val();
          var options = {
              exact:"partial",
              style_name_suffix:false,
              keys:val
          }
          $(document).SearchHighlight(options);
      }
  });
</script>

答案 1 :(得分:2)

enter code here好像你需要jQuery荧光笔插件

http://mir3z.github.io/jquery.texthighlighter/

jQuery Text Highlighter是一个jQuery插件,用于突出显示HTML文档中的文本片段。

注意:如果您在jQuery中需要一些帮助,请参阅 http://jquery.com/

答案 2 :(得分:1)

CSS无法做到这一点。使用像你一直在做的JS解决方案。

我的研究基于此问题的数据CSS 3 content selector?

答案 3 :(得分:1)

使用jQuery UI即可试用

JavaScript代码

$("body").highlight(searchTerm);

<强> CSS

.highlight{background-color:yellow}

答案 4 :(得分:0)

你可以像下面这样使用原始的 Jquery:

function highlight(term,text){
  let tags=text.split(term);
  $(tags).each(function(index,value) {
    tags[index]= '<span>'+value+'</span>';
  });

  return tags.join('<span class="bg-warning text-white">'+term+'</span>');
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="test"></p>
<script>
  $(document).ready(function(){
    $("#test").html(highlight("search","your search term"));
  });
</script>