Javascript 在组合属性选择器中使用或条件
我早些时候问了这个问题并解决了: 但是现在我想知道我怎样才能给它添加一个OR条件 我有以下声明: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
$('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();
});
});