Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在组合属性选择器中使用或条件_Javascript_Jquery - Fatal编程技术网

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

Javascript 在组合属性选择器中使用或条件,javascript,jquery,Javascript,Jquery,我早些时候问了这个问题并解决了: 但是现在我想知道我怎样才能给它添加一个OR条件 我有以下声明: $('div.job:not([data-province="'+province+'"][data-employment="'+employment+'"][data-education="'+education+'"][data-branch="'+branch+'"])').fadeOut('slow'); 现在我想淡出它们,例如data-province=“+province+””或da

我早些时候问了这个问题并解决了:

但是现在我想知道我怎样才能给它添加一个OR条件

我有以下声明:

$('div.job:not([data-province="'+province+'"][data-employment="'+employment+'"][data-education="'+education+'"][data-branch="'+branch+'"])').fadeOut('slow');
现在我想淡出它们,例如data-province=“+province+””或data-province=“”(如此空)

Jsbin:

尝试使用


基于更新

$(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();
    });
});

演示:

您应该使用
.filter()
使选择器更易于阅读只有我无法理解您的问题和/或两个问题!jsbin示例似乎工作正常问题是什么?您可以发布html以便我们可以看到选择的元素及其值,然后解释(在上面的问题中)实际问题是什么。您要求的是解决您对问题的解释,而不是实际问题本身。我将尝试制作一个更完整的JSBIN。我是否只制作div.job:不是从中获取不符合该语句的人?@SinanSamet filter()接受任何类型的有效选择器,您可以添加
:not()
内部的语句filter@downvoter,这个答案有什么问题?当我添加:not语句时,它给了我这个错误。错误:语法错误,无法识别的表达式:not:([data province=“6”][data employment=”“][data education=“”][data branch=“”])@SinanSamet您问题中的主要问题是问题的背景。。。你试图解决问题的一小部分,却没有给我们完整的背景。。。。一旦我有了它,它是一个不到5分钟的工作来解决它
$(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();
    });
});