Javascript jQuery选择器中的if语句

Javascript jQuery选择器中的if语句,javascript,jquery,Javascript,Jquery,我从DOM中得到了两个变量: var get_category = $('#category').find('.current').attr('rel'); var get_subcategory = $('#subcategory').find('.current').attr('rel'); 我想在这里找到DOM中的类并显示它 $('.filter-result').find('.'+get_category, '.'+get_su

我从DOM中得到了两个变量:

var get_category = $('#category').find('.current').attr('rel');                             
var get_subcategory = $('#subcategory').find('.current').attr('rel');
我想在这里找到DOM中的类并显示它

$('.filter-result').find('.'+get_category, '.'+get_subcategory ).show();

但是我需要在
.find()
中写入它,只有在变量存在的情况下

我希望它能回答您的问题:

var get_category = $('#category').find('.current').attr('rel');                             
var get_subcategory = $('#subcategory').find('.current').attr('rel');

var classes = [];

if (get_category) {
    classes.push('.' + get_category);
}

if (get_subcategory) {
    classes.push('.' + get_subcategory);
}

//if get_category or get_subcategory were found
if (classes.length) {
    $('.filter-result').find(classes.join('')).show();
}

我很喜欢Gabriels的答案,因为它非常简单。另一个选项很好用,并且是可扩展的。添加另一个选择器就是将它添加到选择器数组中。不过,使用javascripts过滤器和映射数组方法更高级一些

var get_category = $('#category').find('.current').attr('rel');                             
var get_subcategory = $('#subcategory').find('.current').attr('rel');

var selectors = [get_category, get_subcategory];

var query = selectors.filter(function(elem) {
    if (elem) { return elem };
}).map(function(elem){ 
    return '.' + elem;
}).join(', ')

$('.filter-result').find(query).show();

仅当存在哪个变量时?请elaborate@zzzzBov当前位置我猜他指的是
get_category
和/或
get_subcategory
@RocketHazmat,你知道他们怎么说那些假设事物的人吗…:pNo,它工作不正常,你确定你的意思是('.get_category')?它看起来不像bei需要查找包含多个类的div,例如:$('.filter result').find('.category.sub')@Nelsonder在find调用中转换这些类,它们来自哪里?你的意思是在#category和#subcategory的rel属性中找到的元素应该有一个类,并且这个元素的类应该被添加到find方法中吗?我在DOM中已经有了这个类:我刚刚创建了一个按钮,当我点击这个按钮时,我想从我的变量中找到,例如:find('.cat.sub').show();所以,如果我理解正确,您应该更改
classes.push('.get_category')
类。推送('.'+get_类别)(与子类别相同)