我有2個選擇的,我想基於這些2.使用多個對象上添加過濾器<selects>
<div id="elements">
<div class='anElement' id="1" height="30" color="Red">elem1</div>
<div class='anElement' id="2" height="45" color="Blue">elem2</div>
<div class='anElement' id="2" height="30" color="Blue">elem3</div>
<div class='anElement' id="2" height="60" color="Blue">elem4</div>
</div>
<select id="select1">
<option value="all">All</option>
<option value="Blue">B</option>
<option value="Red">R</option>
</select>
<select id="select2">
<option value="all">All</option>
<option value="45">T</option>
<option value="50">NST</option>
</select>
現在我打電話jQuery的過濾功能,過濾元件的選擇過濾元素(例如在屬性顏色「紅」):
$('#select1').on('change',function(){
if ($('#select1').val() == 'Red') {
$('#elements .anElement').hide().filter('[color*="'Red' "]').show();
}
...
這變得很凌亂,雖然有2個選擇,因爲我需要申請,重新申請並從所選擇的選項,以便正確的方式,我得到動態刪除這些過濾器我想要什麼。
我已經嘗試創建變量來檢查是否在另一個選擇器中發生了變化,但這非常快速地與很多不同的變量和其他語句無關。
什麼是最好和最有效的方法來做到這一點?有點新的JS和jQuery。
這就是我一直在尋找我相信!你爲什麼使用數據屬性而不是普通數據?只是好奇。 – jones
我只是覺得它們更容易過濾,如果它們是非標準屬性,那麼它們應該作爲數據完成 - 某些瀏覽器可能會解釋高度屬性,因爲您實際上想要設置高度 - 它是div標記的遺留屬性(div應該是使用CSS的樣式,而不是屬性) - 請參閱https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes – Pete
如果我選擇使用常規屬性,我可以使用a。數據調用以後添加數據屬性,如$('#elements。anElement')。each(function(){$(this).data('event',{height:$(this).attr('height'),color:$(this).attr('color')} )}),仍然使代碼工作? – jones