2013-08-24 72 views
1

我試圖根據內聯數據屬性搜索多個數據結果。 但是,我只能弄清楚如何搜索單個數據屬性而不是全部。 我該如何做到這一點?如何篩選基於多個數據屬性的搜索結果

我有什麼:提前http://jsfiddle.net/9SMZC/2/

$("input[type=text]").keyup(function() { 
    var filter = $(this).val(); 

    $("a").each(function() { 
     if ($(this).attr("data-event-name").search(new RegExp(filter, "i")) < 0) { 
      $(this).hide(); 
     } else { 
      $(this).show(); 
      matches++; 
     } 
    }); 
}); 

謝謝!

回答

3

如果你想申請一個「或」邏輯,你可以這樣做:

$("input[type=text]").keyup(function() { 
    var filter = $(this).val(); 
    $("a").each(function() { 
     var data = $(this).data(); 
     $(this).hide(); 
     for (var key in data) { 
      if (~data[key].search(new RegExp(filter, "i"))) { 
       $(this).show(); 
       break; 
      } 
     } 
    }); 
}); 

Demonstration(嘗試搜索「安德魯」爲例)

的想法是讓data對象並遍歷這些屬性。爲了簡化代碼(即避免保留布爾值),我總是隱藏並顯示元素是否正常。

+0

謝謝!這正是我一直在尋找的! – Andrew

+0

你爲什麼在'〜data [key]'中使用'〜'? –