Jquery复选框过滤器

时间:2011-08-11 15:48:02

标签: javascript list filter checkbox

我正在考虑过滤列表项目,具体取决于是否选中了某些复选框。

我设法让过滤工作,但我正在努力删除页面加载时的所有列表项。

我们的想法是“列表项目”不显示,直到“选项”复选框被隐藏

我已将我的工作版本放在网上http://dev.perfectdaycanada.com/filter/

感谢先进的任何可以帮助我的人,非常感谢。


用于过滤的javascript:

$(document).ready(function(){
    $("input.type_check").attr("checked", "").click(function() {
        if($(this).is(':checked')) {
            $("#case-studies li."+$(this).attr('id')).removeClass('type_hidden');
            $("#case-studies li").not(".type_hidden, .start_hidden").slideDown();
        } else {
            $("#case-studies li."+$(this).attr('id')).addClass('type_hidden');
            $("#case-studies li."+$(this).attr('id')).slideUp();
        }
    });

    $("input.start_check").attr("checked", "").click(function() {
        if($(this).is(':checked')) {
            $("#case-studies li."+$(this).attr('id')).removeClass('start_hidden');
            $("#case-studies li").not(".type_hidden, .start_hidden").slideDown();
        } else {
            $("#case-studies li."+$(this).attr('id')).addClass('start_hidden');
            $("#case-studies li."+$(this).attr('id')).slideUp();
        }
    });
});

HTML:

<div>
    <input name="action-areas[]" type="checkbox" id="areas_crop_initiatives" value="0" class="type_check" checked="checked" />
    <label for="areas_crop_initiatives">Crop initiatives</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_managment" value="1" class="type_check" checked="checked" />
    <label for="areas_managment">Management</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_assurance" value="2" class="type_check" checked="checked" />
    <label for="areas_assurance">Assurance/certification</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_environmental" value="3" class="type_check" checked="checked" />
    <label for="areas_environmental">Environmental management</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_biodiversity" value="4" class="type_check" checked="checked" />
    <label for="areas_biodiversity">Biodiversity</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_staff" value="5" class="type_check" checked="checked" />
    <label for="areas_staff">Staff</label>
</div>
<div>
    <input name="action-areas[]" type="checkbox" id="areas_community" value="6" class="type_check" checked="checked" />
    <label for="areas_community">Community</label>
</div>


<ul id="case-studies">
    <li id="event_1768" class="ethics_agrochemical_usage ethics_input_costs farms_potatoes areas_crop_initiatives">– Potatoes, Poland</li>
    <li id="event_2190" class="ethics_hcvl farms_beef areas_community areas_managment countries_austria">– Beef, Ireland</li>
    <li id="event_2191" class="ethics_air_emissions farms_tomatoes areas_assurance countries_austria">– Tomatoes, Portugal</li>
</ul>

1 个答案:

答案 0 :(得分:3)

只需将类type_hidden添加到您的列表项中,如下所示:

<li id="event_1768" class="other classes type_hidden">– Potatoes, Poland</li>

(当然还有所有列表项目)