Mootools选择过滤

Mootools Select filtering

本文关键字:过滤 选择 Mootools      更新时间:2023-09-26

当我点击<select>中的一个选项时,我想显示特定的<li>元素:

<select>
    <option value="f_chzn_g_0">Group One</option>
    <option value="f_chzn_g_4">Group Two</option>
</select>

这是我的<li> 's,将被过滤,只显示选定的组。

<ul>
    <li id="f_chzn_g_0" class="group-result">Group One</li>
    <li id="f_chzn_o_1" class="active-result group-option" style="">one</li>
    <li id="f_chzn_o_2" class="active-result group-option" style="">two</li>
    <li id="f_chzn_o_3" class="active-result group-option" style="">three</li>
    <li id="f_chzn_g_4" class="group-result">Group Two</li>
    <li id="f_chzn_o_5" class="active-result group-option" style="">one</li>
    <li id="f_chzn_o_6" class="active-result group-option" style="">two</li>
    <li id="f_chzn_o_7" class="active-result group-option" style="">three</li>
</ul>
有人能帮我一下吗?这一切都必须在Mootools中。谢谢!

您只需要一个状态变量来跟踪您在迭代li元素时是否在选定的组中。假设您通过添加active-result类来显示li元素,那么应该可以执行以下操作:

function showSelectedListItems(ulElem, selectedId) {
    var inSelectedGroup = false;
    ulElem.getElements('li').each(function(liElem) {
        if (!inSelectedGroup) {
            if (liElem.id == selectedId) inSelectedGroup = true;
        }
        else {
            if (liElem.hasClass('group-result') inSelectedGroup = false;
            else liElem.addClass('active-result');
        }
    });
});