首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在搜索框中找到匹配文本时打开说明p标签,否则应禁用p标签

如何在搜索框中找到匹配文本时打开说明p标签,否则应禁用p标签
EN

Stack Overflow用户
提问于 2015-12-15 14:48:43
回答 1查看 80关注 0票数 1

我必须创建一个搜索内容,其中有一个搜索框,一个标题和一个段落描述。默认情况下,description是禁用的,当我输入一些与description文本匹配的文本时,description段落标签应该会打开。一些匹配的demo如下所示:

小提琴

但在这种情况下,默认情况下应该禁用p标记,并且仅当搜索文本匹配时才可见。

代码语言:javascript
复制
function highlightSearch() {
    var text = document.getElementById("query").value;
    var query = new RegExp("(\\b" + text + "\\b)", "gim");
    var e = document.getElementById("searchtext").innerHTML;
    var enew = e.replace(/(<span>|<\/span>)/igm, "");
    document.getElementById("searchtext").innerHTML = enew;
    var newe = enew.replace(query, "<span>$1</span>");
    document.getElementById("searchtext").innerHTML = newe;
	
}
代码语言:javascript
复制
#searchtext span{
    background-color:#FF9;
    color:#555;
}

div {
    padding: 10px; 
}
代码语言:javascript
复制
<div><h2>Find and highlight text in document</h2>
<form action="" method="" id="search" name="search">
<input name="query" id="query" type="text" size="30" maxlength="30">
<input name="searchit" type="button" value="Search" onClick="highlightSearch()">
</form></div>
<div id="searchtext">
<p>JavaScript is the programming language of the Web. The overwhelming majority of
modern websites use JavaScript, and all modern web browsers—on desktops, game
consoles, tablets, and smart phones—include JavaScript interpreters, making Java-
Script the most ubiquitous programming language in history. JavaScript is part of the
triad of technologies that all Web developers must learn: HTML to specify the content
of web pages, CSS to specify the presentation of web pages, and JavaScript to specify
the behavior of web pages. This book will help you master the language.</p>
  
<p>If you are already familiar with other programming languages, it may help you to know
that JavaScript is a high-level, dynamic, untyped interpreted programming language
that is well-suited to object-oriented and functional programming styles. JavaScript
derives its syntax from Java, its first-class functions from Scheme, and its prototypebased
inheritance from Self. But you do not need to know any of those languages, or
be familiar with those terms, to use this book and learn JavaScript.</p>
  
<p>The name "JavaScript" is actually somewhat misleading. 
  <span>Except</span> 
  for a superficial syntactic
resemblance, JavaScript is completely different from the Java programming language.
And JavaScript has long since outgrown its scripting-language roots to become
a robust and efficient general-purpose language. The latest version of the language (see
the sidebar) defines new features for serious large-scale software development.</p>
  
</div>

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 15:20:57

请尝试下面的JS -

代码语言:javascript
复制
function highlightSearch() {
        var text = document.getElementById("query").value;
 
         if ($("#searchtext").has(":contains("+text+")").length) { 
           $('#searchtext').show();
          }
        else 
           {
             $('#searchtext').hide();
            }
      var query = new RegExp("(\\b" + text + "\\b)", "gim");
        var e = document.getElementById("searchtext").innerHTML;
        var enew = e.replace(/(<span>|<\/span>)/igm, "");
        document.getElementById("searchtext").innerHTML = enew;
        var newe = enew.replace(query, "<span>$1</span>");
        document.getElementById("searchtext").innerHTML = newe;
    	
    }
代码语言:javascript
复制
#searchtext span{
        background-color:#FF9;
        color:#555;
    }

    div {
        padding: 10px; 
    }
#searchtext {
display:none;  
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34282705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档