You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript正确实现按卡片内容筛选项目的功能

问题原因

  • JS代码中getElementByClassName拼写错误,正确的DOM API是getElementsByClassName(末尾多一个s),该错误会导致卡片列表获取失败,后续逻辑直接中断
  • 原有显隐逻辑只控制.card节点,外层包裹的.col-lg-2.col-md-3容器仍然占位,即使卡片隐藏也会残留空白区域
  • HTML代码中第二个卡片外层的col闭合标签漏写了>,存在语法错误

修正后完整代码

JavaScript代码

function searchProduct(){
    // 获取搜索框输入,转大写并去除首尾空格
    const input = document.getElementById('filter').value.toUpperCase().trim();
    const cardContainer = document.getElementById('card-list');
    // 直接获取卡片外层的col容器,方便统一控制显隐
    const cardWrappers = cardContainer.querySelectorAll('.col-lg-2.col-md-3');

    for(let i = 0; i < cardWrappers.length; i++){
        let title = cardWrappers[i].querySelector(".body h5.card-title");
        // 容错处理,避免找不到标题节点时报错
        if(!title) continue;
        // 匹配搜索关键词
        if(title.innerText.toUpperCase().includes(input)) {
            cardWrappers[i].style.display = "";
        } else {
            cardWrappers[i].style.display = "none";
        }
    }
}

HTML代码

<div class="row">
    <div class="col-lg-7 col-md-8 col-sm-12 col-xs-12">
        <input type="text" id="filter" onkeyup="searchProduct()" placeholder="ME INFORME O NOME DA CONSTRUTORA ...">
    </div>
</div><br>

<div id="card-list">
  <div class="col-lg-2 col-md-3">
      <div class="card hvr-grow cbox">
          <div class="body">
          <div class="header"><div class="card-status-orange">AGUARDANDO ...</div></div>
          <h5 class="card-title">ADSM</h5>
          <div class="card-footer">21/10/2021</div>
              <a href="" alt="Avatar" style="width:100%; border-radius: 10px;"></a>
          </div>
      </div>
  </div>

  <div class="col-lg-2 col-md-3">
      <div class="card hvr-grow cbox">
          <div class="body">
          <div class="header"><div class="card-status-orange">AGUARDANDO ...</div></div>
          <h5 class="card-title">ALFA DO BRASIL</h5>
          <div class="card-footer">21/10/2021</div>
              <a href="" alt="Avatar" style="width:100%; border-radius: 10px;"></a>
          </div>
      </div>
  </div>
</div>

内容的提问来源于stack exchange,提问作者Mike Otharan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:45:03