首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示在另一个类中搜索的结果

显示在另一个类中搜索的结果
EN

Stack Overflow用户
提问于 2018-08-08 05:11:57
回答 2查看 91关注 0票数 0

这段代码显示了用javascript搜索列表的结果

代码语言:javascript
复制
<script>
function myFunction() {
// Declare variables
var input, filter, ul, li, a, i;
input = document.getElementById('myInput');
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName('li');

// Loop through all list items, and hide those who don't match the search query
for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
        li[i].style.display = "";
    } else {
        li[i].style.display = "none";
    }
}

}

html代码是:

代码语言:javascript
复制
 <input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">

<ul id="myUL">
<li><a href="#">Adele</a></li>
<li><a href="#">Agnes</a></li>

<li><a href="#">Billy</a></li>
<li><a href="#">Bob</a></li>

<li><a href="#">Calvin</a></li>
<li><a href="#">Christina</a></li>
<li><a href="#">Cindy</a></li>
</ul> 

但我希望js对第一个li列表进行代码搜索并保存它们,最后将结果显示到另一个地方(id= submenuItems),比如这个类:

代码语言:javascript
复制
<li>
    <div class="dropdownlink"><i class="fa fa-road" aria-hidden="true"></i>tittle
        <i class="fa fa-chevron-down" aria-hidden="true"></i>
    </div>
    <ul id="submenuItems">
        <li><a href="#">list1</a></li>
        <li><a href="#">list1</a></li>
    </ul>
</li>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-08 05:56:07

JsFiddle:https://jsfiddle.net/txe1sp43/45/

HTML:

代码语言:javascript
复制
<input type="text" id="myInput" placeholder="Search for names...">

<ul class="myUL">
  <li><a href="#">Adele</a></li>
  <li><a href="#">Agnes</a></li>

  <li><a href="#">Billy</a></li>
  <li><a href="#">Bob</a></li>

  <li><a href="#">Calvin</a></li>
  <li><a href="#">Christina</a></li>
  <li><a href="#">Cindy</a></li>
</ul> 

<ul class="myUL">
  <li><a href="#">Albert</a></li>
  <li><a href="#">Audrey</a></li>

  <li><a href="#">Beau</a></li>
  <li><a href="#">Bonny</a></li>

  <li><a href="#">Clyde</a></li>
  <li><a href="#">Christine</a></li>
  <li><a href="#">Chris</a></li>
</ul> 

<ul id="submenuItems"></ul>

和Javascript:

代码语言:javascript
复制
const input = document.getElementById("myInput");
const out = document.getElementById("submenuItems");

// Define event-listener for keyup event
input.onkeyup = () => {
    // Clear outputlist
  out.innerHTML = "";

  // Don't do anything if input field has been cleared
  if (input.value === "") return;

  // Declare variables
  const filter = input.value.toUpperCase();
  const ul = document.getElementsByClassName("myUL");
  const res = [];

  // Loop through all lists and look for matches to filter
  for (let j = 0; j < ul.length; j++) {
    const li = ul[j].getElementsByTagName('li');
    for (let i = 0; i < li.length; i++) {
      const a = li[i].getElementsByTagName("a")[0];
      // For each match, add a new li to output and insert a copy of the link to that
      if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
        const newLi = out.appendChild(document.createElement("li"));
        newLi.appendChild(a.cloneNode(true));  
      }
    }    
  }

};
票数 1
EN

Stack Overflow用户

发布于 2018-08-08 05:40:14

如下所示:

代码语言:javascript
复制
function myFunction() {
  document.getElementById('submenuItems').innerHTML = '';
  // Declare variables
  var input, filter, ul, li, a, i;
  input = document.getElementById('myInput');
  filter = input.value.toUpperCase();
  ul = document.getElementById('myUL');
  li = ul.getElementsByTagName('li');

  // Loop through all list items, and hide those who don't match the search query
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName('a')[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
      var newA = document.createElement('a');
      newA.setAttribute('href', '#');
      
      newA.appendChild(document.createTextNode(
         li[i].getElementsByTagName('a')[0].textContent));
      
      var newLi = document.createElement('li');
      newLi.appendChild(newA);            
      document.getElementById('submenuItems').appendChild(newLi);

    }
  }
}
代码语言:javascript
复制
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">

<ul id="myUL">
<li><a href="#">Adele</a></li>
<li><a href="#">Agnes</a></li>

<li><a href="#">Billy</a></li>
<li><a href="#">Bob</a></li>

<li><a href="#">Calvin</a></li>
<li><a href="#">Christina</a></li>
<li><a href="#">Cindy</a></li>
</ul>

<p>
Found stuff
<ul id="submenuItems">
</ul>
</p>

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

https://stackoverflow.com/questions/51735511

复制
相关文章

相似问题

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