You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery如何筛选同时包含多个指定class类名的div元素

实现方案

你可以直接通过拼接类选择器字符串,或者用jQuery的filter方法配合数组的every判断实现联合筛选,两种实现方式如下:

方式1:拼接联合选择器(最简便)

直接把选中的类名数组拼接成.class1.class2.class3的格式,刚好匹配你需要的同时包含所有类的选择规则:

// 每次筛选前先清空数组,避免上次的选项残留
selectedOptions = [];
$('input[name="filter-input"]:checked').each(function(i){
  selectedOptions.push($(this).val());
});

// 先隐藏所有item
$(".item").hide(); 

if (selectedOptions.length === 0) {
  // 没有选中任何选项时默认展示所有item,可根据需求调整逻辑
  $(".item").show();
} else {
  // 拼接联合选择器,直接筛选同时包含所有选中类的元素
  const targetSelector = '.item.' + selectedOptions.join('.');
  $(targetSelector).show();
}

方式2:用filter方法(灵活度更高)

如果后续需要加额外的筛选规则,可以用jQuery的filter方法配合数组every判断,逻辑更清晰:

// 前面获取选中选项、隐藏所有item的逻辑不变
selectedOptions = [];
$('input[name="filter-input"]:checked').each(function(i){
  selectedOptions.push($(this).val());
});
$(".item").hide(); 

if (selectedOptions.length > 0) {
  $('.item').filter(function() {
    // 只有当前元素包含所有选中的类时,才会被保留并展示
    return selectedOptions.every(className => $(this).hasClass(className));
  }).show();
} else {
  $(".item").show();
}

注意事项

  • 要保证复选框的value值和div上的类名完全一致,大小写、字符都不能有差异,否则会匹配失败
  • 每次触发筛选前必须清空selectedOptions数组,否则上次选中的选项会残留,导致筛选结果错误

内容的提问来源于stack exchange,提问作者avp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:36:02