我在alt
中有<img>
属性的简单过滤器。我放了<INPUT>
。
当我搜索一个单词时,一切都有效,但是当我键入另一个相同"alt"
的单词时,它并没有显示任何内容。例
alt = "pyramid green"
如果我输入PYRAMID GREEN它会显示图片
4。如果我输入GREEN PYRAMID,它就会显示任何内容
我想要的是以任何给定的顺序搜索alt
属性中的任何给定单词。谢谢你的帮助。
function search() {
var filter = $('input').val().toUpperCase();
var li = $('li');
var a = $('a');
for (i = 0; i < li.length; i++) {
a = li[i];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1 ) {
li[i].style.display = '';
} else {
li[i].style.display = 'none';
}
}
}
答案 0 :(得分:1)
您应该在空格上拆分过滤器字符串,就像现在搜索整个字符串一样。
所以你的代码将是:
function search() {
var filter = $('input').val().toUpperCase().split(' ');
var li = $('li');
var a = $('a');
for (var i = 0; i < li.length; i++) {
a = li[i];
var text = a.innerHTML.toUpperCase();
for(var f = 0; f < filter.length; f++) {
if (text.indexOf(filter[f]) > -1 ) {
li[i].style.display = '';
break; // don't need further matches
} else {
li[i].style.display = 'none';
}
}
}
}