2011-09-19 19 views
0

我有一組結果(汽車列表),它們以div的形式顯示。我想使用jquery來允許我過濾這些結果,例如我想要一個複選框,上面寫着'空調',當選中時隱藏所有'非空調車'。什麼是最快的Javascript(jquery)方法來選擇具有某些數據段的元素

有幾個屬性,每車有:

  • 空氣
  • 反式

我想到了3種方法,我可以添加此數據以可選擇的方式顯示在頁面上,哪一個會是最快的?即是否有明顯的贏家?

1.添加類每個結果:

<div class="air_0 trans_1 group_3">Car</div> 

和使用jQuery等:

$('.air_1').hide(); 

2.每個結果具有在一個js陣列引用的uniue ID

Var tags = new array(); 
tags['air_1'] = 'unique_id_1'; 
tags['trans_0']['unique_id_1'] = true; 

和使用jQuery,如:

$.each(Tags['air_1'], function(i, result) 
{ 
    $('#'+result).hide(); 
}); 

3.添加一些額外的屬性到HTML(無效的話)

<div air=」1」 fuel=」3」></div> 

和使用jQuery,如:

$('div[air=1]').hide(); 
+5

我想向您介紹[我的一個朋友](http://jsperf.com)。 – Pointy

+2

除了普通的屬性外,HTML5'data -...'屬性可能還是要走的路。 – pimvdb

+0

請記住,代碼可讀性與性能一樣重要。 –

回答

0

添加類是要走的路。

雖然,我不認爲你需要真/假類(air_0,air_1等)。您應該只添加汽車沒有的類別(例如<div classes="air">Car</div>沒有空調)。這絕對是實現這一目標的最佳方式,因爲生成所有數據非常簡單,並且使用jQuery的.show()/.hide()函數管理結果非常簡單。它也需要很少的代碼,這使得它非常快速。我寫了很多需要divs,divs,divs(輕度誇張),大量數據和正則表達式的函數,但與幾個類和一些使用相比,似乎有點太複雜了。

相關問題