Javascript - 使用文本输入框过滤数据
Javascript - filtering data with text input box
我正在尝试创建过滤功能,用户可以在其中开始在输入框中键入文本,并且该功能将在用户键入时显示/隐藏数据。此外,它需要组合两个或多个单词,但仅用于显示具有该单词组合的结果,而不是显示可以找到单词的数据(因为该函数目前正在工作)。我正在尝试创建这个一段时间,我不知道该怎么做。
这是最后一个工作代码(JS小提琴演示):
.HTML:
<div class="gallery-search">
<input type="text" name="input-filter" class=form-control id="input-filter" placeholder="Search Here">
</div>
<div>
<a class="gallery" data-tags="chaos board nordic viking warriors display ship dock warhammer fantasy"></a>
<a class="gallery" data-tags="modular necron obelisk pyramid ziggurat scenery gaming board wasteland warhammer 40k"></a>
<a class="gallery" data-tags="modular nurgle imperial chaos gaming board toxic crossroad warhammer 40k"></a>
<a class="gallery" data-tags="modular necron obelisk pyramid ziggurat scenery warhammer 40k"></a>
<a class="gallery" data-tags="ork orc fort fortress modular palisade wood skaven scenery warhammer fantasy"></a>
</div>
.JS:
var inputFilter = $('#input-filter');
inputFilter.on('keyup', function() {
var
$this = $(this),
search = $this.val().toLowerCase(),
words = search.split(/'s+/),
data;
if(search.length > 2){
$('.gallery').hide();
$('a[data-tags]').filter(function(){
// splitting the data-tags attribute to an array of words:
data = this.dataset.tags.split(/'s+/);
// looking to see if any of the words (from the value)
// are present in the array formed from the data-tags
// attribute, using Array.prototype.some() to iterate
// over the given array, returning a Boolean true or false:
return words.some(function (word) {
return data.indexOf(word) > -1;
});
}).show();
}
if(search == ''){
$('.gallery').show();
}
});
return words.reduce(function(previousValue, currentValue, index, array) {
return previousValue && data.indexOf(currentValue) > -1;
},true);
http://jsfiddle.net/911hx0bd/5/
末尾的 true 是 init 值,它是数组中第一个值的前一个值
相关文章:
- 通过API调用过滤数据
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- 如何使用javascript、jquery或其他javascript框架过滤数据
- 在解析时使用变量过滤数据
- 如何用使用剔除数据和“数据”两者计算的数据来过滤数据;外部“;数据
- d3在鼠标悬停上过滤数据之后从选择中提取值
- AngularJS-显示过滤数据的长度
- 如何在 Angular js 中按日期过滤数据
- 如何在数组循环中过滤数据
- Javascript - 使用文本输入框过滤数据
- 如何在数组循环 222 中过滤数据
- 基于动态复选框过滤数据 角度 JS中的类别
- 从数组 java 脚本中过滤数据
- Angular JS 搜索过滤器不会使用 Firebase 过滤数据
- 如何在 Angular js 中根据严格匹配过滤数据
- JQuery - 使用不同输入的多个筛选器过滤数据属性
- 如何在angularjs中按日期范围过滤数据
- 如何在角度js中使用日期过滤数据
- 如何在Angular js中基于两个自定义过滤器过滤数据
- Asp.net MVC 3过滤数据然后传递到JSON中