Javascript jQuery选择器中的if语句
我从DOM中得到了两个变量: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
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_类别)代码>(与子类别相同)