javascript - 如何在 Materialise CSS 中过滤卡片

标签 javascript jquery html

I have a number of applications, so I am trying to write code in html. I want to filter the cards through materialized CSS, but I did not understand where the code I wrote did not work. Can you help me correct this?

抱歉,如果这篇文章没有被理解。 谷歌翻译:)

daha ne yazıyım yazdım iste yazacağımı kabul eder Misin artık

function myFunction() {
  var input, filter, cards, cardContainer, h5, title, i;
  input = document.getElementById("myFilter");
  filter = input.value.toUpperCase();
  cardContainer = document.getElementById("myItems");
  cards = cardContainer.getElementsByClassName("card");
  for (i = 0; i < card.length; i++) {
    title = cards[i].querySelector(".card-content h5.card-title");
    if (title.innerText.toUpperCase().indexOf(filter) > -1) {
      cards[i].style.display = "";
    } else {
      cards[i].style.display = "none";
    }
  }
}
<div class="container">
  <div class="row">
    <div class="col-sm-12 mb-3">
      <input type="text" id="myFilter" class="form-control" onkeyup="myFunction()" placeholder="Search for names..">
    </div>
  </div>


  <div class="row" id="myItems">

    <div class="row">
      <div class="col s6">
        <div class="card">
          <div class="card-image waves-block waves-light">
            <img class="activator" src="https://image.tmdb.org/t/p/w600_and_h900_bestv2/izncB6dCLV7LBQ5MsOPyMx9mUDa.jpg">
          </div>
          <div class="card-content">
            <center>
              <h5 class="card-title">How i Met Your Mother</h5>
            </center>
          </div>
        </div>
      </div>

      <div class="col s6">
        <div class="card">
          <div class="card-image waves-block waves-light">
            <img class="activator" src="https://image.tmdb.org/t/p/w600_and_h900_bestv2/A9QDK4OWpv41W27kCv0LXe30k9S.jpg">
          </div>
          <div class="card-content">
            <center>
              <h5 class="card-title">Two and a Half Men</h5>
            </center>
          </div>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col s6">
        <div class="card">
          <div class="card-image waves-block waves-light">
            <img class="activator" src="https://image.tmdb.org/t/p/w600_and_h900_bestv2/w7VV1jdtwzEC0c71AjUUA4T65Az.jpg">
          </div>
          <div class="card-content">
            <center>
              <h5 class="card-title">Seinfeld</h5>
            </center>
          </div>
        </div>
      </div>

      <div class="col s6">
        <div class="card">
          <div class="card-image waves-block waves-light">
            <img class="activator" src="https://image.tmdb.org/t/p/w600_and_h900_bestv2/x40NhjIPoDoTbT0z2utFgIedtwh.jpg">
          </div>
          <div class="card-content">
            <center>
              <h5 class="card-title">Scrubs</h5>
            </center>
          </div>
        </div>
      </div>
    </div>

    <div class="row">
      <div class="col s6">
        <div class="card">
          <div class="card-image waves-block waves-light">
            <img class="activator" src="https://image.tmdb.org/t/p/w600_and_h900_bestv2/ooBGRQBdbGzBxAVfExiO8r7kloA.jpg">
          </div>
          <div class="card-content">
            <h5 class="card-title">Big Bang</h5>
          </div>
        </div>
      </div>

      <div class="col s6">

      </div>

    </div>
    </di>


    <style>
      body {
        background-color: #222731;
      }
    </style>

最佳答案

你的for循环中有一个错误,你使用了card.length而不是card.length:

for (i = 0; i < cards.length; i++) {
    title = cards[i].querySelector(".card-content h5.card-title");
    if (title.innerText.toUpperCase().indexOf(filter) > -1) {
        cards[i].style.display = "";
    } else {
         cards[i].style.display = "none";
    }
}

关于javascript - 如何在 Materialise CSS 中过滤卡片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61207737/

相关文章:

html - 使用 CSS 将导航栏居中

php - 多个页面上的相同代码,如何创建模板文件并包含在所有页面中?

javascript - 如何从javascript手动触发工具提示和输入框

jquery - Django/jQuery - 读取文件并作为文件下载提示传递给浏览器

javascript - 显示隐藏 <li> 元素

jquery - 想要延迟关闭 fancybox 窗口

javascript - 文本按字长对齐

javascript - 在移动浏览器中播放声音?

JavaScript 在点击按钮时动态添加文本框

javascript - 如何创建幻灯片计时器并添加功能选项卡