1

特定のニーズを満たすために、jQueryを使用して検索関数を最初から作成しました。<span>のからデータを検索し、テキストボックス内の文字列と一致しない場合<div>は非表示にします。<div>

私が抱えている問題は、文字列は認識しますが、最初の文字は認識しないことです。また、大文字と小文字が区別され、これは私が含めたい機能ではありません。

 //Grab ID of current recordContainer
            var currentID = $(this).attr('id');
        // Add hash tag so it can be used as an ID call
            var currentID2 = ("#" + currentID);
        //Grab data from author span in current recordContainer
            var currentAuthor = $(this).children('span.listLeadAuthor').text();
        //If current author matches anything in the search box then keep it visible
            if (currentAuthor.search(searchBox1) > 0)
            {
                    $(currentID2).show();
                    count++;
            }
        //If search box is empty keep it visible
            else if (searchBox1 === "")
            {
                    $(currentID2).show();
            }

JSFiddle Here

4

2 に答える 2

5

問題は、最初の文字がインデックス0にあるため、ifステートメントが最初の文字を無視していることです。

if (currentAuthor.search(searchBox1) > 0)

する必要があります:

if (currentAuthor.search(searchBox1) >= 0)

大文字と小文字を区別したい場合は、またはのいずれtoUpperCase()かを適用する必要がありますtoLowerCase()

if (currentAuthor.ToUpperCase().search(searchBox1.toUpperCase()) >= 0)
于 2013-03-26T10:02:51.270 に答える
2

私が抱えている問題は、文字列は認識しますが、最初の文字は認識しないことです。

あなたの問題はここにあります:

if (currentAuthor.search(searchBox1) > 0)

JSのString.searchは、最初の一致の位置を取得します。それがあなたのテキストの始まりであるなら、それは0です。

一致が見つからない場合の戻り値はではなく0、です-1

于 2013-03-26T10:02:09.960 に答える