2014-02-12 53 views
0

我問這個問題早得到它解決: AND selector jQuery使用OR條件組合的屬性選擇

但現在我想知道我怎麼能添加OR條件吧。

我有這樣的說法:

$('div.job:not([data-province="'+province+'"][data-employment="'+employment+'"][data-education="'+education+'"][data-branch="'+branch+'"])').fadeOut('slow'); 

現在我想淡出出來,如果例如數據的省份=「‘+省+’」或數據省內=「」(這樣空)。

Jsbin: http://jsbin.com/qomub/14/edit

+0

你應該使用'.filter()'讓你的選擇器更具可讀性 –

+0

只有我不能理解你的問題和/或兩個問題! –

+0

jsbin示例似乎工作正常什麼是probelm –

回答

2

嘗試filter()multiple selector

$('div.job').filter('[data-province="' + province + '"], [data-province=""]').fadeOut('slow'); 

基於更新

$(document).ready(function() { 
    var $jobs = $('.job'); 
    var $selects = $("#province, #employment, #education, #branch").on("change", function() { 
     var $filtered = $jobs; 

     $selects.each(function() { 
      if (this.value) { 
       $filtered = $filtered.filter('[data-' + this.id + '="' + this.value + '"], [data-' + this.id + '=""]'); 
      } 
     }); 
     $filtered.show(); 
     $jobs.not($filtered).hide(); 
    }); 
}); 

演示:Fiddle

+0

我只是做div.job:不是爲了得到那些對陳述不真實的人嗎? –

+0

@SinanSamet filter()接受任何一種有效的選擇器,你可以在過濾器 –

+4

@downvoter中添加':not()'語句,這個答案有什麼問題?它給出了總體想法 –