Jquery搜索 - 无法按预期工作

时间:2012-07-30 08:19:49

标签: javascript jquery search

这是我的示例代码: http://jsfiddle.net/pT6dB/

我有点问题。那里有两个示例答案:

“地球有多圆?”和“纸是多么矩形?”

如果我输入搜索词“round earth”,我希望它能显示“地球有多圆?”结果却没有。

我想我需要更改查询,以便说明哪些问题同时包含“round”和“Earth”。

这是一个简单的修改吗?这是一个站点的示例代码,所以我不知道从哪里开始不幸。

5 个答案:

答案 0 :(得分:3)

$('#search').keyup(function(e) {
    var s = $(this).val().trim();

    // show all results
    $('#result LI').show();

    // split the search into words
    var keywords = s.split(' ');

    // loop over the keywords and if it's not in a LI, hide it
    for(var i=0; i<keywords.length; i++) {
        $('#result LI:not(:contains('+keywords[i]+'))').hide();
    }
});

答案 1 :(得分:0)

您需要搜索每个单词,而不是搜索任何项目中不存在的字符串“round Earth”:

    var words = s.split(' ');

    $('#result LI').hide();

    $(words).each(function() {
        $('#result LI:contains(' + this + ')').show();
    });

Demo

当然,这里有一些可以想象的复杂情况;我们所做的就是调整脚本以涵盖一个更具体的场景。但这可能足以满足您的目的。

答案 2 :(得分:0)

我想你在问“这会是一个简单的修改吗?” 答案是不。 :)

你试图在没有数据库但只是jQuery的情况下进行全文搜索,不要谈论更复杂的情况,但至少你需要使用split来拆分用户输入的空格并逐个检查它们。

答案 3 :(得分:0)

您在javascript中查找的内容为full-text search,而contains是不够的。但你可以做一些像这个问题的接受答案:text search in javascript?

答案 4 :(得分:0)

Try that它还会检查你输入的单词是否多于1个单词。