基于用户输入从列表中清除项目
clearing items from a list based on user input
正在寻找一个jquery方法,通过用户输入缩小无序列表的范围。列表中的每个项目都包含一个名字和姓氏。目的是使用两者来缩小列表范围,因此如果第一个字母是"x",则名字或姓氏中没有"x"的所有项目都将被清除。此外,若列表缩小到0,则类似于激发一个函数(ajax调用,但可以是任何东西)。
html:
<input id="listCheck">
<ul>
<li class="entry"><span class="nametext">alex crain</span></li>
<li class="entry"><span class="nametext">Bart Simpson</span></li>
<li class="entry"><span class="nametext">Jessica Alba</span></li>
<li class="entry"><span class="nametext">Will Farrell</span></li>
</ul>
js:
$("listCheck").keyup(function(){
var term = $(this).val();
});
我假设我需要将跨度转换为一个名字和姓氏分开的数组,然后循环遍历它们。Fiddle
像这个
$('#listSearch').keyup(function(){
var valThis = $(this).val().toLowerCase();
$('.navList>li').each(function(){
var text = $(this).text().toLowerCase();
(text.indexOf(valThis) >= 0) ? $(this).show() : $(this).hide();
});
});
演示Fiddle
//您可以使用if-else来代替三元运算符。
与其使用indexOf
,不如使用:contains()
选择器。它不会更快,但代码看起来会更干净:
$("li:contains(term)").show();
$("li:not(:contains(term))").hide();
等等。这是你的小提琴的演示
试试这个:
$("#listCheck").keyup(function(){
var txt = $(this).val();
$('.nametext').each(function ()
{
if($(this).html().indexOf(txt) >= 0)
{
$(this).parent().show();
}
else
{
$(this).parent().hide();
//$(this).parent().remove();
}
});
});
这是工作示例here
相关文章:
- 改变“;onClick"这个jQuery的操作从清除输入文本改为将输入文本添加到下面的列表中
- 如何在选择另一个列表框值时清除列表框值
- jQuery移动列表过滤:如何更改清除按钮文本
- 如何重新启用禁用的下拉列表以及如何清除文本框数据
- 如何在下拉事件更改时使用 jquery 清除或清空列表框
- 按钮在 jsfiddle 中起作用,但不清除文本编辑器中的有序列表
- 选择相反的单选按钮时清除复选标记和下拉列表
- 挖空:在不清除视图模型中的值的情况下更改选择列表中的选项
- 用于清除/取消选择单选按钮列表中的项目的 Javascript
- 具有角度未清除选定值的语义 UI 下拉列表
- 如何从待办事项列表中清除元素(使用用户添加的元素)
- 如何清除/重置仅使用 javascript 的剑道下拉列表
- 如何对返回数据列表的清除Select语句进行编码
- 使用JQuery清除下拉列表
- 清除已完成任务按钮待办事项列表
- 如何使我的选项成为默认选项,以便如果我清除下拉列表,它将由默认选项填充
- 删除并重新生成文件输入时清除文件列表
- 通过JSON接收数据时,清除子下拉列表中的旧选项
- 如何使用javascript清除所有项目并在asp.net复选框列表中添加新项目
- 基于用户输入从列表中清除项目