我想创建一个JQuery语句:当我在输入字段中输入一个值时,JQuery语句可以根据标签的内容选择一个项目列表。
例如,如果我在输入字段中输入“F”,则可以选择id为“2”和“3”的列表。
这是 HTML 代码:
<input id="test" type="text">
<ul id="myul" class="myul">
<li id="1" class="a">
<span>
<b>Money</b>
<i>Fish Money Food a</i>
</span>
</li>
<li id="2" class="a">
<span>
<b>Food</b>
<i>Fish Money Food b</i>
</span>
</li>
<li id="3" class="a">
<span>
<b>Fish</b>
<i>Fish Money Food c</i>
</span>
</li>
</ul>
但是,我想要一个通用的解决方案,这个通用的解决方案也适用于类似结构的其他 HTML 代码,例如:
<ul id="myul" class="myul">
<li id="1" class="a">
<a>Money</a>
<i>Fish Money Food a</i>
</li>
<li id="2" class="a">
<a>Food</a>
<i>Fish Money Food b</i>
</li>
<li id="3" class="a">
<a>Fish</a>
<i>Fish Money Food c</i>
</li>
</ul>
我是 JQuery 新手,有人可以帮助我吗?
谢谢。
最佳答案
有这样的事吗?您可以使用 :contains 搜索具有该文本的元素
$('#test').on('keyup', function () {
$('#myul li').hide();
$('#myul li:contains("' + this.value + '")').show();
});
您可以通过粘贴 this code 使 :contains 不区分大小写.
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
return function( elem ) {
return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
关于javascript - JQuery 对元素的多个级别进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21287347/