【发布时间】:2018-06-14 05:55:00
【问题描述】:
我正在尝试为 ul 中的 li 元素扩展我的过滤功能。 我的 ul 结构如下所示:
<ul>
<li class="root"><span class="text">Root1</span>
<ul>
<li class="list"><span class="text">li1.1</span></li>
</ul>
</li>
<li class="root"><span class="text">Root2</span>
<ul style="display: block;">
<li class="root"><span class="text">Root2.1</span>
<ul style="display: block;"></ul>
</li>
<li class="root"><span class="text">Root2.2</span>
<ul style="display: block;">
<li class="list"><span class="text">li2.2.1</span></li>
</ul>
</li>
<li class="root"><span class="text">Root2.3</span>
<ul style="display: block;">
<li class="list"><span class="text">li2.3.1</span></li>
<li class="list"><span class="text">li2.3.2</span></li>
</ul>
</li>
</ul>
</li>
<li class="root"><span class="text">Root3</span>
<ul>
<li class="list"><span class="text">li3.1</span></li>
</ul>
</li>
<li class="root"><span class="text">Root4</span>
<ul>
<li class="list"><span class="text">li4.1</span></li>
<li class="list"><span class="text">li4.2</span></li>
</ul>
</li>
</ul>
目前我有过滤功能,可以根据 .list 元素之间的查询进行过滤。现在我正在尝试以某种方式实现它,即在过滤列表(仍然只有 .list 元素)时,会有结构历史记录。
例如:搜索“li2.3.2”会返回:
<ul>
<li class="root"><span class="text">Root2</span>
<ul style="display: block;">
<li class="root"><span class="text">Root2.3</span>
<ul style="display: block;">
<li class="list"><span class="text">li2.3.2</span></li>
</ul>
</li>
</ul>
</li>
</ul>
编辑:为了澄清,因为我没有在原始帖子中提到这一点......我正在尝试按用户输入(部分匹配计数)进行过滤。 我当前的方法是通过在文本输入框中获取用户输入,获取 ul 中的所有 .list 元素并比较每个元素是否 span.text 包含搜索文本。
【问题讨论】:
-
您将需要编写到目前为止已实现的代码
标签: javascript jquery html