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

多下拉菜单选择触发批量显示隐藏相同类名div的jQuery实现问题

问题原因

你现有代码的问题出在siblings()方法的调用逻辑上:当你筛选出多个匹配类组合的div后,链式调用.siblings().hide()时,多个匹配元素之间互为兄弟节点,会被互相判定为需要隐藏的其他元素,最终导致所有匹配元素被互相隐藏,只有单匹配项时才不会触发这个问题。

解决方案

调整显示隐藏的执行顺序:先隐藏所有结果div,再单独把匹配筛选条件的div显示出来即可,完全不需要操作siblings节点。

修改后的jQuery代码

jQuery(function($){
    var
        selects = $('#select-container select'),
        results = $('#results-container > div');
    
    selects.change(function(){        
        var values = '';
        selects.each(function(){
            values += '.' + $(this).val();
        });        
        // 先隐藏所有结果
        results.hide();
        // 只显示匹配的结果
        results.filter(values).show();
    });
});

效果验证

修改后无论有多少个相同类组合的div,只要匹配下拉选择的类组合,都会被统一显示,其余不匹配的div保持隐藏,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:18:01