簡體   English   中英

如何為JavaScript過濾以任意給定順序包含多個單詞的字符串?

[英]How to filter a string with multiple words in any given order for javascript?

我對<img>alt屬性有一個簡單的過濾器。 我放了<INPUT> 當我搜索一個單詞時,一切正常,但是當我鍵入另一個與"alt"相同的單詞時,它什么也沒有顯示。 示例alt = "pyramid green"

  1. 如果我輸入綠色,則顯示圖片
  2. 如果我鍵入PYRAMID,則顯示圖片
  3. 如果我輸入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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM