实时搜索jquery(在li标题中搜索)

时间:2011-06-18 00:39:48

标签: javascript jquery

我尝试使用输入字段搜索项目列表

<ul class="display">
 <li title="Pizza Otto">some divs</li>
 <li title="Pizza Prono">some divs</li>
 <li title="Pizza David">some divs</li>
</ul>

以下代码适用于<li>...</li>中的字词,我想在其中放置一些div并将标题属性添加到<li>进行搜索的位置。

$('input[name="q"]').search('.display li', function(on) {
    on.all(function(results) {
        var size = results ? results.size() : 0
        $('#count').text(size + ' results');
});

这里有正确的选择器的任何想法:.search('.display li'?或者我必须在哪里进行更改?

谢谢,对不起我的英文......

P.S。这是我的第一个问题!

UPDATE:测试是否包含val的函数

 function query(selector) {
    if (val = this.val()) {
      return $(selector + ':contains("' + val + '")');;
    } else {
      return false;
    }
  }

2 个答案:

答案 0 :(得分:1)

如果您只想突出显示与您的输入值匹配的列表项,您还可以尝试使用.contains()(如果您想要部分匹配),否则您可以使用Trey提到的属性包含选择器。

可以找到两者的示例,包括不区分大小写的.contains() here

答案 1 :(得分:0)

我不熟悉搜索方法......但

var result=$('.display li["title='+$('input[name="q"]').val()+'"]');

会选择你要找的li

我认为@ robin-pyon正在考虑:contains()选择器,.contains()方法实际上是在另一个dom元素中搜索dom元素,如果要搜索的文本包含在LI中你可以用它来选择ui:

var result=$('.display li:contains("'+$('input[name="q"]').val()+'")');