在组合属性选择器中使用OR条件

时间:2014-02-12 10:40:53

标签: javascript jquery

我之前提出过这个问题并得到了解决: AND selector jQuery

但现在我想知道如何添加OR条件。

我有这样的声明:

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

现在我想淡出它们,例如data-province =“'+ province +'”OR data-province =“”(如此为空)。

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

1 个答案:

答案 0 :(得分: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