Javascript 多层次元素上的JQuery选择

Javascript 多层次元素上的JQuery选择,javascript,jquery,html,Javascript,Jquery,Html,我想创建一个JQuery语句:当我在输入字段中输入一个值时,JQuery语句可以根据标记的内容选择一个项目列表 例如,如果我在输入字段中输入“F”,则可以选择id为“2”和“3”的列表 以下是HTML代码: <input id="test" type="text"> <ul id="myul" class="myul"> <li id="1" class="a"> <span> <b>Mo

我想创建一个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>

  • 钱 鱼钱食物
  • 食物 鱼钱食品b
  • 鱼 鱼钱食品
但是,我需要一个通用解决方案,这个通用解决方案也可以用于类似结构的其他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>
  • 钱 鱼钱食物
  • 食物 鱼钱食品b
  • 鱼 鱼钱食品
我是JQuery新手,有人能帮我吗


谢谢。

像这样的东西?可以使用:contains搜索包含该文本的元素

$('#test').on('keyup', function () {
    $('#myul li').hide();
    $('#myul li:contains("' + this.value + '")').show();
});

通过粘贴,可以使:contains不区分大小写


这背后的逻辑是什么?是文本搜索吗?嗨,是的,可以是文本搜索Hi Anton,谢谢你的回复。我刚刚更新了HTML代码,实际上,我只想在第一个最深的子元素中搜索文本。你能看一下吗?@NARU所以你不能只搜索测试鱼?例如,如果一个标签的内容是“鱼”,其他内容的内容是“鱼会游泳”。然后输入“Fish”将不起作用。@NARU它不应该起作用,或者你是什么意思?在fiddle中显示一个示例我的意思是,在这种情况下,如果您输入“Fish”,那么列表中有两个项目使用您的解决方案进行匹配。
jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
    return function( elem ) {
        return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});