我有一个包含各种链接的列表,我想使用输入字段进行搜索。
<form>
<input id="search">
</form>
<ul>
<li data-name="one"></li>
<li data-name="two"></li>
<li data-name="ozone"></li>
</ul>
当我在输入字段中输入“on”或其他各种单词片段时,如何使用jquerys keyup事件隐藏数据名为“two”的li?
搜索:“两个”
搜索:“o”
搜索:“on”
这是迄今为止我所拥有的JSFiddle,但它只适用于从单词的开头匹配,而不是内联。
答案 0 :(得分:1)
试试这个:
$('#search').keyup(function()
{
var val = this.value;
if (val)
$('ul > li:not([data-name*="' + val + '"])').hide();
else
$('ul > li').show();
});
答案 1 :(得分:0)
我建议循环浏览所有li并根据输入值隐藏它们:
$("#search").on("keyup", function() {
$("li").each(function(index, li) {
if ($(li).data("data-name").indexOf($("#search").val()) < 0) {
$(li).hide();
}
});
});