在<div>中搜索文本

noo*_*wie 1 javascript jquery html5 text-search

我正在尝试在单个HTML5页面上搜索EACH,然后如果没有匹配项,则将其隐藏。我“差不多”了,但还不在那里。到目前为止,如果有单个字符的匹配项,我将消失,但是如果我键入其他任何内容,则将重新出现。另外,如果我清除搜索框,我想重置页面。如果您能看一下Java的话,我们将不胜感激。

function myFunction() {
    input = document.getElementById("Search");
    filter = input.value.toUpperCase();
    for (i=0; i<document.getElementsByClassName('target').length; i++){
if(document.getElementsByClassName('target'[i].innerHTML.toUpperCase().indexOf(filter) > -1) {     
    document.getElementsByClassName("target")[i].style.display = "none";
            }
        else{
        	document.getElementsByClassName("target")[i].style.display = "";
        } 
    }
}
    </script>
Run Code Online (Sandbox Code Playgroud)
    <table align="center" width="20%">
    <tr>
      <td style="padding-right: 10px">
        <input type="text" id="Search" onkeyup="myFunction()" 
        placeholder="Please enter a search term.." title="Type in a name">
      </td>
    </tr>
    </table>
    <br>


    <div class="target">
    This is my DIV element.
    </div>
    <div class="target">
    This is another Div element.
    </div>
Run Code Online (Sandbox Code Playgroud)

Oen*_*n44 5

妳去 includes符合您需求的二手方法。

function myFunction() {
  var input = document.getElementById("Search");
  var filter = input.value.toLowerCase();
  var nodes = document.getElementsByClassName('target');

  for (i = 0; i < nodes.length; i++) {
    if (nodes[i].innerText.toLowerCase().includes(filter)) {
      nodes[i].style.display = "block";
    } else {
      nodes[i].style.display = "none";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)
<table align="center" width="20%">
  <tr>
    <td style="padding-right: 10px">
      <input type="text" id="Search" onkeyup="myFunction()" placeholder="Please enter a search term.." title="Type in a name">
    </td>
  </tr>
</table>
<br>


<div class="target">
  This is my DIV element.
</div>
<div class="target">
  This is another Div element.
</div>
<div class="target">
  Can you find me?
</div>
Run Code Online (Sandbox Code Playgroud)