2

私は JS を独学で学んだアマチュアで、ついにここに登録する時が来たと思いました :)

文字列の配列から単一の文字列を取得し、ドロップダウンメニューから特定の変数キーワードが含まれているかどうかを確認するスクリプトを作成しようとしています (そして失敗しています)。私のコード: http://jsfiddle.net/apMsc/1/

ドロップダウン メニューと search/indexOf に競合があると思います。私のコードは、キーワードが文字列の先頭にある場合にのみ機能するようです。キーワードが深く埋まっている場合、search()は -1 を返します (私も試しindexOfました)。

例えば:

document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);

test3array [0]は文字列value1@-@ value2@-@ value1@-@ value2で、drop1はメニューの変数です。

value1 を検索するとスクリプトは機能しますが、最初に移動しない限り value2 は機能しません。new RegExp(drop1)ここでも以前のトピックに基づいて使用しようとしましたが、うまくいきませんでした。

どんなアドバイスでも大歓迎です。

4

1 に答える 1

0

これは、両方が改行test3array[0]drop1始まるためです。改行を取り除きたい場合は、trim()それらの変数を呼び出します。たとえば、これは機能します:

document.getElementById('result').innerHTML =
    test3array[0].trim().indexOf(drop1.trim());

編集: 質問する際のアドバイス: コードの機能しない部分を特定しようとして、ここに投稿しました。質問をする前に最小限のテストケースを見つけることは良い考えであり、多くの場合、解決策につながることもありますが、そうするときは、最小限のテストケースがバグを再現するかどうかも確認する必要があります。それだけで、行document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);は正しいです。

于 2013-03-28T08:37:58.240 に答える