[英]How to filter a string with multiple words in any given order for javascript?
我對<img>
的alt
屬性有一個簡單的過濾器。 我放了<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';
}
}
}
您現在應該搜索整個字符串,因此應該將過濾器字符串拆分為空格。
因此,您的代碼將是:
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';
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.