1

これは私のコード例です: http://jsfiddle.net/pT6dB/

少し問題があります。そこには2つの答えの例があります:

「地球はどのくらい丸いの?」と「紙はどのくらい長方形ですか?」

「丸い地球」という検索語を入力すると、「地球はどのくらい丸いのですか?」と表示されるはずです。結果として、そうではありません。

クエリを変更して、どの質問に「round」と「earth」の両方が含まれているかを示すように変更する必要があると思います。

これは簡単な修正でしょうか?これはサイトのサンプル コードなので、残念ながらどこから始めればよいかわかりません。

4

5 に答える 5

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();
    }
});
于 2012-07-30T08:25:14.370 に答える
0

文中に連続していない単語を1つ以上入力したかどうかもチェックしてみてください。

于 2012-07-30T08:44:41.110 に答える
0

あなたが探しているのfull-text searchは JavaScript であり、十分でcontainsはありません。しかし、この質問の受け入れられた答えのようなことを行うことができます: javascript でのテキスト検索?

于 2012-07-30T08:28:22.440 に答える
0

どの項目にも存在しない文字列「round Earth」ではなく、各単語を検索する必要があります。

    var words = s.split(' ');

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

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

デモ

もちろん、ここには考えられる複雑な問題があります。私たちが行ったのは、スクリプトを調整して、もう 1 つの特定のシナリオをカバーすることだけです。しかし、それはあなたの目的には十分かもしれません。

于 2012-07-30T08:25:04.557 に答える
0

「これは簡単な変更でしょうか?」と尋ねていると思います。答えはノーだ。:)

データベースなしで全文検索を作成しようとしていますが、jQuery だけです。より複雑な状況については話せませんが、少なくとも分割を使用して、ユーザーが入力した単語をスペースで分割し、1 つずつ確認する必要があります。

于 2012-07-30T08:25:15.687 に答える