在UL中寻找物品

时间:2014-11-06 12:28:12

标签: jquery

My Unordered List树结构如下:

<ul id="Budor">
    <li class="L-1">First
        <span class='jor'>+</span>
        <ul>
           <li class="L-2">First Child
               <span class='jor'>+</span>
              <ul>
                  <li>Tropical Thunder</li>
                  <li>Magnolia</li>
              </ul>
            </li>
        </ul>
      </li>

我在文本框中输入了一些文字并在此列表中搜索了一个项目。这是我的演示http://jsfiddle.net/yunabna5/

我面临三个主要问题:

  1. 在键入的每个字符上,列表将关闭并打开。
  2. 列表项以及父项也会突出显示。我希望只有带搜索词的列表项才能突出显示。
  3. 搜索列表后,我无法展开其他列表
  4. 如何修复代码?建议?

1 个答案:

答案 0 :(得分:0)

$('#txt').keyup(function () {
if(this.value == ""){
    bud.find('ul').stop(true, true).slideDown(500);
    bud.find("li.highlight").removeClass("highlight");
    return;
}

if(bud.find('.highlight').length == 0){
    bud.find('ul').stop(true, true).slideUp(500);
}

bud.find("li ul")
   .find('ul')
   .find('li:contains(' + this.value + ')')
   .addClass("highlight");

 bud.find('li.highlight')
    .stop(true)
    .parentsUntil(bud)
    .slideDown(500);

});

如果不告诉我原因,我认为这可以解决您的问题http://jsfiddle.net/yunabna5/10/

相关问题