Jquery - 在<ul> </ul>中搜索

时间:2014-10-03 09:51:43

标签: javascript jquery

嘿伙计们我试图搜索<ul>

基本上我写作时需要隐藏/显示对应的<li>元素。

HTML

<input id="searchUtil" type="search" placeholder="Pesquisa..."/>

<ul id="ulutilizadores" class="list-group">
   <li>**some code*</li>
</ul>

截至目前,我有这个:

//#searchUtil is the <input> id
$('#searchUtil').on('keyup', function (e) {
    var searchText = $(this).val();


//#ulutilizadores is the <ul> id
    $('#ulutilizadores li').each(function () {
        var text = $(this).val();
        if (text.indexOf(searchText)) {
            $(this).hide();
        } else {
            $(this).show();
        }
    });
});

这不起作用。 我一直在寻找,但我真的找不到一些好的答案。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

您的代码中出现轻微错误

var text = $(this).val();

应该是

var text = $(this).text();

在你的情况下。

  

The .val() method is primarily used to get the values of form elements such as input, select and textarea.   jQuery手册

答案 1 :(得分:0)

试一试。在此,您搜索完全相同的文本。更改为searchText.Contains(this.innerHTML)或类似的内容,以获取文本在列表中的位置。

HTML:

<ul id="ulutilizadores" class="list-group">
   <li>test</li>
   <li>test1</li>
</ul>

JQuery的:

$('#searchUtil').change(function(){
    var searchText = $(this).val();
     $('#ulutilizadores li').each(function () {
        if(searchText !== this.innerHTML )
        {
            $(this).hide();
        }
         else
         {
             $(this).show();
         }
    });
});

JsFiddle