如何使用搜索输入过滤多级菜单

-1 javascript multi-level

难点在于菜单有很多级别(如matrix-admin中的菜单),并且每个级别都很大;我应该如何根据搜索输入的值过滤菜单。

输出应该是这样的:( http://www.jqueryrain.com/?lEMFOjZ1 ) 我的 html 是这样的:

<ul>
<li>xxx</li>
<li>
   <a>xxx</a>
   <ul>
      <li>
           <a>xxx</a>
           <ul>
                <li>
                   <a>xxx</a>
                   <ul></ul>
                </li>
           </ul>
      </li>
      <li>xxxx</li>
   </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

Bha*_*vik 5

演示小提琴

$("li").each(function () {
    if (filter == "") {
        $(this).css("visibility", "visible");
        $(this).fadeIn();
    } else if ($(this).text().search(new RegExp(filter, "i")) < 0) {
        $(this).css("visibility", "hidden");
        $(this).fadeOut();
    } else {
        $(this).css("visibility", "visible");
        $(this).fadeIn();
    }
});  
Run Code Online (Sandbox Code Playgroud)

Onkeypress事件菜单将被过滤......li如果您尝试找到子项,则父级将可见li......