javascript - 为什么我的可搜索过滤列表不起作用?

标签 javascript jquery onsen-ui

我正在尝试使用 HTML 和 jQuery 显示一堆列表项(在 Onsen UI 移动应用程序中),然后允许根据输入的字符对它们进行过滤。由于某种原因,它不起作用。我做错了什么?

我的 HTML 是:

<input placeholder="Search Me" id="box" type="text" />

<ons-list class="ng-scope list ons-list-inner">

  <ons-list-header class="list-header trn list__header ons-list-header-inner" data-trn-key="cuisine">Cuisine</ons-list-header>

  <ons-list-item onclick="Load(1);" class="list__item ons-list-item-inner">Apple</ons-list-item>

  <ons-list-item onclick="Load(2);" class="list__item ons-list-item-inner">Orange</ons-list-item>

  <ons-list-item onclick="Load(3);" class="list__item ons-list-item-inner">Melon</ons-list-item>

</ons-list>

和 jQuery:

$('#box').keyup(function(){
   var valThis = $(this).val().toLowerCase();
    if(valThis == ""){
        $('.list > .list__item').show();
    } else {
        $('.list > .list__item').each(function(){
            var text = $(this).text().toLowerCase();
            (text.indexOf(valThis) >= 0) ? $(this).show() : $(this).hide();
        });
   };
});

这是一个 fiddle :https://jsfiddle.net/4mw0k9m9/3/

最佳答案

问题似乎出在下面的 if 语句上:

(text.indexOf(valThis) >= 0) ? $(this).show() : $(this).hide();

使用这个就可以了:

if (text.indexOf(valThis) >= 0) {
    $(this).show()
} else {
    $(this).hide();
}

关于javascript - 为什么我的可搜索过滤列表不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45734541/

相关文章:

jquery - Fullcalendar Rails 可拖动/调整大小不起作用

jquery - 使用Jquery表单插件asp.net mvc 3

javascript - 如何将 "ons-select"的值保存到 JavaScript 的变量中?

javascript - 在 AngularJS Material Design 中,如何隐藏 `md-toolbar` 中的溢出文本?

javascript - 如何解决在 react 中设置状态的 promise

jquery - 如何在 D3.js 中创建正态分布 正态分布

javascript - Onsen UI + InMobi 集成

javascript - Angularjs Controller 显示错误

javascript - event.returnValue 已弃用。请改用标准 event.preventDefault()

javascript - 如何输出数组中匹配大小写的值