Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
Javascript to filter list items and their children by keywords

Can someone correct this js script. When I search "keyword2" or "keyword3" it shows the list items and their children containing these keywords but also shows the siblings and their children which contain different keywords, e.g. "keyword4" or "keyword5". I believe the issue is within the last 5 lines of JS. Also can you make the script non-case sensitive. Thanks.

const $input = document.querySelector("#myInput");
$input.addEventListener("input", (e) => {
  const query = e.target.value;
  const $ul = document.querySelector("ul");
  const $lis = $ul.querySelectorAll("li");
  const $matchedLis = [...$lis].filter(($li) => $li.textContent.match(query));
  [...$lis].forEach(($li) => $li.classList.add("hide"));
  [...$matchedLis].forEach(($li) => {
    $li.classList.remove("hide");
    [...$li.querySelectorAll("li")].map(($li) => $li.classList.remove("hide"));
  });
});
.hide {
  display: none;
}
<html>

<body>

  <input type="text" id="myInput" placeholder="Search through notes" title="Type in a keyword">
  <ul id="List">
    <li>
      Parent 1 keyword1
      <ul>
        <li>
          Child keyword2
          <ul>
            <li>"Grand" Child keyword3</li>
          </ul>
        </li>
        <li>
          Child keyword4
          <ul>
            <li>"Grand" Child keyword5</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>
      Parent 2 keyword6
      <ul>
        <li>
          Child keyword7
          <ul>
            <li>"Grand" Child keyword8</li>
          </ul>
        </li>
        <li>
          Child keyword9
          <ul>
            <li>"Grand" Child keyword10</li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>

</body>

</html>

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda