javascript - 从特定 DOM 部分搜索数据
问题描述
我有一个搜索输入字段,我想动态获取用户的输入并更新包含在<div>
我正在为目录设置搜索解决方案,您可以在其中显示项目列表。
现在,所有项目都立即显示。
html
<input type="search" id="search-field" placeholder="Search...">
</div>
<div class="container">
<p id="guide">Select a category from the menu</p>
<ul id="product-list">
</ul>
<script src="./preload.js"></script>
</div>
js代码
var fileList = document.getElementById('product-list');
var title = document.getElementById('guide');
title.innerHTML = `You are looking at the ${products} catalog.`;
for(var i = 0; i < thumbFiles.length; i++){
var pathName = thumbFiles[i];
var finalName = pathName.split('/').pop();
fileList.innerHTML = document.getElementById('product-list').innerHTML +
`<li class="product-container">
<div class="new-thumb">
<a href="${(items[i])}" id='product-placeholder' target="_blank">
<img src="${(thumbFiles[i])}" alt="thumb" class="thumbnail">
</a>
<h4>${(path.parse(finalName).name)}</h4>
</li>`
};
}
我希望<ul>
使用目录中的搜索输入文本匹配元素来更新。
解决方案
您可以将oninput
侦听器附加到您的元素,如下所示:
在你的 js 脚本中
const myInput = document.querySelector(‘#search-field’);
const fileList = document.querySelector('#product-list');
myInput.addEventListener(‘input’, () => {
// Don’t forget to clean your results on each new input
fileList.innerHTML = ‘’;
for(const index in thumbFiles) {
const pathName = thumbFiles[index];
const finalName = pathName.split('/').pop();
// Here is the function that will check if your current item match user input
if (match(finalName, myInput.value)) {
fileList.innerHTML += [your stuff]
}
}
});
每次您的输入改变值时,这将触发一个函数。在这里,它调用了我们的箭头函数,我们在其中打包了当用户输入一些文本时我们想要执行的所有操作。
编辑
忘记与当前输入进行比较。您可以通过调用获取输入值myInput.value
一个例子match()
可以是:
function match(name, userInput) {
return name.includes(userInput);
}
这将只检查 finalName 是否包含用户输入。
推荐阅读
- java - Fragment中TextView的空对象引用
- selenium-webdriver - 页面上的按钮列表。获得列表后,我想检查按钮是否显示在页面上
- python - 如何标记正则表达式模式并对结果列表进行排序?
- c - 如何修复“函数的隐式声明”
- java - 如果安装了 Nvidia 或 AMD GPU 卡,则获取 bool
- pandas - Pandas 识别出产生 80 次销售额的商品数量
- c# - 如何在不破坏 MVVM 的情况下从 ViewModel 通知 View?
- python - Google assistant sdk [CUSTOM TYPES]:从自定义操作中捕获货币价值(10 美元、20 美元、50 美元)
- python - 如何在 gdb 中使用 __slots__ 读取 python 对象的属性
- sql-server - 由于大量重复而没有主键的表,试图加快我的查询以消除重复等