繁体   English   中英

JQuery在多个元素级别上的选择

[英]JQuery selection on multiple levels of elements

我想创建一个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();
});

DEMO

您可以通过粘贴此代码来包含不区分大小写。

jQuery.expr[":"].Contains = jQuery.expr.createPseudo(function(arg) {
    return function( elem ) {
        return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM