2016-08-09 7 views
0

alt属性の簡易フィルタは<img>です。置くと<INPUT>。 1単語を検索するとすべてが機能しますが、同じ単語を入力すると"alt"は何も表示されません。私は緑を入力した場合、私はそれが私ピラミッドGREENを入力した場合、それは場合絵javascriptの任意の順序で複数の単語を含む文字列をフィルタリングするにはどうすればよいですか?

4を示す画像

  • を示すピラミッド入力した場合の例 alt = "pyramid green"

    1. それは画像
    2. を示し、I緑色のピラミッド型では何も表示されません

    alt属性内の任意の単語を任意の順序で検索したいと考えています。助けてくれてありがとう。今、あなたは文字列全体を検索するとあなたは、スペース上のフィルタ文字列を分割する必要があり

  • +0

    ですから、パターンはスペース区切りで検索したいですか? GREE PYRAMIDは一致するはずですが、GREE PYRは一致しませんか? –

    +0

    altアトリビュートに単語が何か順番どおりに一致するようにしたい場合は、緑色のPYRを書く必要がなければ、緑色のPYRはまだ一致するはずです。 –

    答えて

    2

    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'; 
          } 
         } 
        } 
    
    } 
    
    +0

    どうもありがとう。私は百万年の間にそれを推測しません。再度、感謝します!!!!/ –

    関連する問題