jquery“过滤”数据的ul / li“树”,以便在满足过滤器时显示所有子项

时间:2014-04-13 21:57:01

标签: javascript jquery jquery-selectors

鉴于信息树,我需要以这样的方式“过滤”数据:如果有人查询“Beta”,他们会看到类别1> Beta> ShowThisasWell

关键的一点是,这些<ul><li><div>是由json数据中的其他组件创建的。目前,我只关心在dom中创建节点的情况。我将弄清楚如何调用代码来过滤实际数据。

       <div>
         <ul>
           <li>
              <div>Category 1</div>
              <ul>
                <li>
                     <div>Beta</div>
                     <ul>
                       <li>
                          <div>ShowThisasWell</div>
                       </li>
                      </ul>
                 </li>
               </ul>
            </li>
          </ul>
        </div>

1 个答案:

答案 0 :(得分:0)

function filter(query) {
    $('li').hide();
    $('li li > div').each(function(){
        if($(this).text() == query) {
            $(this).parents('li').show();
            $(this).next().find('li').show();
        }
    });
}

这是您提供的代码所特有的,可能需要进行调整(我在父div上添加id / class以在文档中标识它)。 JSFiddle http://jsfiddle.net/va7yh/