我有一个如下所示的列表:
<span id="contacts_tab_contacts_list_list">
<li><span id="contact_35">John</span>
</li>
<li><span id="contact_36">Ron a</span>
</li>
<li><span id="contact_33">Ron b</span>
</li>
<li><span id="contact_34">35</span>
</li>
<li><span id="contact_39">33</span>
</li>
<li><span id="contact_37">66</span>
</li>
<li><span id="contact_38">77</span>
...
</span>
我使用<input>
来jQuery
过滤列表。
我尝试使用这两条jQuery
行来做到这一点:
$("#contacts_tab_contacts_list_list").children().hide();
$("#contacts_tab_contacts_list_list:contains('" + searchValue + "')").show();
例如,在搜索框中输入Ron
会使contact_36
和contact_33
成为列表中唯一可见的元素。
hide()
部分有效。 show()
没有。
我做错了什么? (假设searchValue
具有正确的值,在本例中为Ron
)
有更好的方法吗?
谢谢!
答案 0 :(得分:5)
尝试将选择范围缩小到嵌套的span
元素:
$("#contacts_tab_contacts_list_list li span:contains('" + searchValue + "')").show();