2013-05-02 63 views
0

我想實現搜索使用div的數據過濾器屬性。 這裏的一個問題與this.I想實現一個像search.Currently它正在尋找確切match.Where我需要做出改變,使之成爲像搜索Div喜歡搜索使用dat過濾器屬性

 <label for="search">Search Input:</label> 
<input type="search" name="filter" id="search" value="" /> 
<div data-filter="vehicle1">vehicle1</div> 
<div data-filter="vehicle2">vehicle2</div> 
<div data-filter="vehicle3">vehicle3</div> 
<div data-filter="vehicle4">vehicle4</div> 
<div data-filter="vehicle5">vehicle5</div> 


$(document).ready(function() { 


    $('#search').on('keyup', function() { 
      var val = $.trim(this.value); 

      if (val) { 
       $('div[data-filter]').hide(); 
     $('div[data-filter=' + val + ']').show(); 

       } 
if(val.length == 0) 
     { 
    $('div[data-filter]').show(); 
     } 
}); 

}); 

回答

1

看看這裏:CSS selectors,這是jQuery的選擇器是基於什麼的。

jQuery的增加,與Attribute Contains Selector

而你的情況會像這樣工作:

$('div[data-filter*="' + val + '"]').show(); 
+0

它不是working.actually div的是像這樣動態生成.. var elm ='

'+divcontent+'
'; $(elm).appendTo(container); ..在這些動態生成的div中,iw ant來過濾 – vmb 2013-05-02 07:16:57

+0

YA..NOW它正在工作... – vmb 2013-05-02 07:20:58

+0

我認爲它起初不工作的事實並沒有太多與提供的答案,更多與你如何實現它。所以你可以接受答案.. – 2013-05-03 22:44:50

0

也許這將工作:

var $divs=$("div"); 
for(var i=0;i<$divs.length;i++){ 
    console.log("div's data-filter",$divs[i]["data-filter"]); 
    console.log("value",val); 
    if($divs[i]["data-filter"] 
    &&($divs[i]["data-filter"].indexOf(val)!==-1)){ 
     $($divs[i]).show(); 
    } 
}