jquery - 在 UL 中查找项目

标签 jquery

我的无序列表树结构如下:

<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. 搜索列表后,我无法展开其他列表

如何修复我的代码?有建议吗?

最佳答案

$('#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/如果不告诉我为什么。

关于jquery - 在 UL 中查找项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779506/

相关文章:

php - PHP AJAX 后返回空数据

javascript - jQuery UI 未检测到 droppable 的第一个子项上的 drop

javascript - 重新创建或更改推特按钮的参数

php - 如何使用 jquery ajax 获取文件列表

javascript - 将复选框选中状态保存并加载到数据库

javascript - 如何获取包含开始时间、结束时间和持续时间的时间数组?

Visual Studio 中的 javascript 智能感知

javascript - 如何循环遍历数组以提取 ID 号 javascript

jquery html在点击事件上消失

jQuery 脚本将匹配元素的属性移动到其子元素