Javascript 如何隐藏属性不为';与输入值不匹配?
我有一个包含各种链接的列表,我想使用输入字段进行搜索Javascript 如何隐藏属性不为';与输入值不匹配?,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含各种链接的列表,我想使用输入字段进行搜索 <form> <input id="search"> </form> <ul> <li data-name="one"></li> <li data-name="two"></li> <li data-name="ozone"></li> </ul> 在输入字段中键
<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
搜索:“两个”
- 两个
- 一个
- 两个
- 臭氧层
- 一个
- 臭氧层
我建议遍历所有li,并根据输入值隐藏它们:
$("#search").on("keyup", function() {
$("li").each(function(index, li) {
if ($(li).data("data-name").indexOf($("#search").val()) < 0) {
$(li).hide();
}
});
});
$(“#搜索”)。在(“键控”,函数()上{
$(“li”)。每个函数(索引,li){
if($(li).data(“数据名”).indexOf($(“#搜索”).val())<0){
$(li.hide();
}
});
});
试试这个:
$('#search').keyup(function()
{
var val = this.value;
if (val)
$('ul > li:not([data-name*="' + val + '"])').hide();
else
$('ul > li').show();
});
似乎与标题相反,您希望隐藏属性值与输入值不匹配的元素。此外,这项任务没有明确规定,实际上是一项任务分配,而不是一个适合这样做的问题。你应该详细说明你想要什么,展示你已经尝试过的,并解释它是如何失败的。我已经编辑了“问题”来尝试并澄清问题,还包括了一个我尝试过的JSFIDLE链接。谢谢,我完全不知道*会在这方面起作用,也没有想过尝试它。我只熟悉^和$。