⊗jsPrStAuc 11 of 62 menu

JavaScriptでのオートコンプリート

ここではオートコンプリートを実装します。 この用語は、入力欄にテキストを入力する際に 表示されるドロップダウンのヒントを指します。 例を見てみましょう。以下に、国名を入力できる 入力欄を作成しました。ここでいくつかの文字を 入力すると、入力された文字列で始まる国々の リストが入力欄の下に表示されます。

必要に応じて、国名全体を入力せずに、 マウスで任意の国をクリックすれば、 それが入力欄に表示されるようにできます。 これが、オートコプリートが一般的に必要な理由です。 簡単のため、例では3つの国だけを設定しています: Belarus、Belgium、Bulgariaです。 以下の入力欄に、最初に英語の 'B' を、 次に 'e' と入力して、 何が起こるか確認してください:

解説

どのようにこの課題を解決するか話し合いましょう。 国名の配列を作成する必要があります。 私の場合は次のようになります:

let arr = ['Belarus', 'Belgium', 'Bulgaria'];

入力欄にテキストを入力する際、 各文字の入力ごとに国の配列を走査し、 入力された文字列で始まる国を取得する必要があります。 これは filter メソッドと startsWith メソッドを使用すると便利です。

filter を使用すると、 入力された文字列で始まる国の配列を取得できます。 次に、この配列をループで走査し、 国名を持つリスト項目で ul リストを 埋める必要があります。 そして、これは各文字の入力ごとに、 事前にulから以前に作成されたリスト項目を削除して 行う必要があります。

あなたの便宜のために、完成したマークアップを以下に示します:

<div id="parent"> <input id="elem"> <ul id="list"></ul> </div> text text text text text #parent { position: relative; } #elem { padding: 5px; font-size: 18px; } #parent ul { position: absolute; margin: 0; padding: 0; list-style-type: none; background-color: white; } #parent li { border: 1px solid gray; font-size: 18px; padding: 5px; } #parent li:hover { border: 1px solid black; cursor: pointer; }

上記のHTMLコードとCSSコードをコピーしてください。 説明されたアルゴリズムに従って オートコンプリートを実装してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否