JQUERY仅展开选定的父列表

我从这个JSfiddle那里获取了源代码。 最初子列表元素是折叠的,当单击父元素时,只展开选定的父列表。 当我搜索某个名称时,它正好显示但在从搜索框中清除搜索文本后,它正在扩展所有父母和孩子。

//Search $('input#catInput').keyup(function() { var searchTerms = $(this).val(); console.log('Input change') $('#orgCat li').each(function() { var $li = $(this); var hasMatch = searchTerms.length == 0 || $li.text().toLowerCase().indexOf(searchTerms.toLowerCase()) > 0; $li.toggle(hasMatch); if ($li.is(':hidden')) { $li.closest("ul").show('slow'); } }); }); var $expandBtns = $('.expandBtn'); //counting childs $expandBtns.each(function() { var $span = $(this).find('span#count'); var $subList = $(this).siblings('ul').find('li') $span.text(' ' + $subList.length) }); //Collapse and Expand $('#orgCat ul').hide('li'); $expandBtns.on('click', function() { var $subList = $(this).siblings('ul'); if ($subList.is(':visible')) { $subList.hide('slow'); } else { $subList.show('slow'); } }); 
 ul { list-style: none; margin: 0px; padding: 0px; } ul li {} li>ul { padding-left: 15px; } 
    
Country Dept
  • 13   India
    • 3   Ap
      • 0   Venkat
      • 0   vag
      • 0   tirupati
    • 5   TN
      • 0   chena
      • 0   India1
      • 0   India2
      • 0   India3
      • 0   India4
    • 2   TS
      • 0   Hyd
      • 0   warangal
  • 2   USA
    • 0   USA-1
    • 0   USA-2

需要扩大崩溃的解决方案。

请检查更新的jsfiddle https://jsfiddle.net/vt0tw50e/24/

 if(searchTerms == "") { $expandBtns.each(function() { var $subList = $(this).siblings('ul'); $subList.hide('slow'); }); }