オプション追加機能を実装する
このステップでは、アプリケーションに新しい投票オプションを追加する機能を実装します。
index.html ファイルで、ファイルの下部にある <script> セクションを見つけます。
<script> セクションの中で、まず itemNumber と renderList を追加します。追加後のコードは以下のようになります。
let itemNumber = 2; // 初期データ数は 2
let initRender = (txt) => {
return `<div class="mb-3 row">
<label class="col-sm-2 col-form-label txt">${txt}</label>
<div class="col-sm-9">
<input type="text" class="form-control">
</div>
</div>`;
};
// 削除ボタン付きで HTML をレンダリングするための関数
let renderList = (txt) => {
return `<div class="mb-3 row item">
<label class="col-sm-2 col-form-label txt">${txt}</label>
<div class="col-sm-9">
<input type="text" class="form-control">
</div>
<div class="col-sm-1">
<img class="del-icon" src="./images/x.svg" alt="">
</div>
</div> `;
};
これらの関数は、投票オプションの HTML 構造を生成するために使用されます。
<script> セクション内の次のコードブロックを見つけます。
$(
(function () {
// 初期化時に、以下の 2 つのデータが削除シンボルなしで表示される
for (let index = 0; index < 2; index++) {
let initList = initRender(`Option${index + 1}`);
$(".list").append(initList);
}
// プラス記号をクリックすると
$(".add").click(function () {
// TODO: ここのコードを完成させる
});
})()
);
$(".add").click(function () {... }) ブロックの中に、以下のコードを追加します。
$(".list").html("");
itemNumber++;
for (let index = 0; index < itemNumber; index++) {
let list = renderList(`Option${index + 1}`);
$(".list").append(list);
}
このコードは、既存のオプションをクリアし、itemNumber 変数をインクリメントし、その後 renderList 関数を使って新しいオプションをレンダリングします。
このコードが追加されると、ユーザーが「オプションを追加」ボタンをクリックすると、新しい投票オプションがリストに追加されます。