javascript - JQuery 对元素的多个级别进行选择

标签 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>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

您可以通过粘贴 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/

相关文章:

javascript - 如何将这两个表与两个模型合并?

javascript - 为什么我的菜单栏诉诸:hover behavior onload?

javascript - 单击菜单时超链接问题不重定向到另一个网页

javascript - AngularJS: ng-click 并选择文本

javascript - 使用 jQuery 或 Javascript 触发 HTML5 下载

javascript - 带有母版页/模板的 React Router V4 路由器

javascript - 使用 jquery 选中和取消选中所有复选框

javascript - 删除日期字符串中的空格

javascript - 更改 MyWSAT 页面大小的最佳实践是什么...css、代码,两者都有?

javascript - 如何将导航更改为选项卡菜单