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

JavaScript搜索框改造需求:支持同时搜索问题按钮文本与<dd>标签内的答案文本

修改JavaScript搜索功能以同时匹配问题和答案文本

没问题,我帮你把搜索功能扩展到同时匹配问题按钮文本和答案文本。只需要调整mySearch函数,让它同时检查按钮和对应的<dd>标签内容就行,具体改动如下:

修改后的完整JavaScript代码

function mySearch() { 
  var input = document.getElementById('myInput'), 
      filter = input.value.toUpperCase(), 
      li = document.querySelectorAll(".ul li"); 
  // 遍历所有列表项,隐藏不匹配搜索关键词的项
  for (var i = 0; i < li.length; i++) { 
    var questionBtn = li[i].querySelector("button"); 
    var answerText = li[i].querySelector(".answer");
    // 判断搜索关键词是否存在于问题文本 OR 答案文本中
    if (questionBtn.innerHTML.toUpperCase().indexOf(filter) > -1 || 
        answerText.innerHTML.toUpperCase().indexOf(filter) > -1) { 
      li[i].style.display = ""; 
    } else { 
      li[i].style.display = "none"; 
    } 
  } 
} 
var acc = document.getElementsByClassName("question"); 
var i; 
for (i = 0; i < acc.length; i++) { 
  acc[i].addEventListener("click", function() { 
    this.classList.toggle("active"); 
    var answer = this.nextElementSibling; 
    if (answer.style.display === "block") { 
      answer.style.display = "none"; 
    } else { 
      answer.style.display = "block"; 
    } 
  }); 
}

关键改动说明

  • 新增获取每个列表项对应的答案元素:var answerText = li[i].querySelector(".answer");
  • 更新判断逻辑,只要问题按钮文本或者答案文本中包含搜索关键词,就保留显示该列表项,用逻辑或||连接两个匹配条件

你的HTML结构不需要做任何调整,直接替换上面的JavaScript代码就能实现需求啦。

内容的提问来源于stack exchange,提问作者Megan Wise

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:24:08