2013-03-13 64 views
0

我想显示具体<li>元素时,我对其中的一个选项单击从这样一个<select>MooTools的选择过滤

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

这是我<li>的这会得到过滤,只显示选定的组。

<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中。谢谢!

+0

'each'用于UL李与if语句检查时开始,直到明年。集团-结果,以及有troble与最后部分。不太熟悉mootools – Trouble 2013-03-13 17:50:40

回答

0

您只需要一个状态变量,用于在迭代li元素时跟踪您是否在选定组中。假设您展示通过添加active-resultli元素,像下面应该工作:

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'); 
     } 
    }); 
});