質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.92%

テキストエリアの文字をjqueryのappendを使用してliに追加、表示する方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,168

dragon_2tree

score 7

現在HTML,Javascript,jqueryを用いてサイトを作成しています。
自分の今の技術ではできないと判断したので質問させていただきます。

今実現したいことは2つのテキストエリアに入力されている文字をjqueryのappendを用いてulの中のliに追加、表示することです。

例えば

<span>選択:</span><input type="text" size="15" class="sentaku" readonly="readonly" value="img1">
<span>所有者:</span><input type="text" size="10" class="name" value="name1">

のようなテキストエリアがあり、この中の文字をliに「選択したもの + 所有者の名前」というように追加するというようなものです。

現在下記のコードでliを追加することはできますがinputの内容をliに追加し表示する方法がわかりません。

$(function(){

  var x = 0;
  $(".map_tuika").on("click", function() {

    $(".show_map > ul").append("<li></li>");
  });
});

当初は選択、所有者のクラスを使ってvalueを指定し追加すればいいのかなと思いましたがうまくいきませんでした。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2017/04/22 13:21

    一般的に「テキストエリア」は<textarea>を指します。この場合「テキスト」のほうが良いと思います。また、「画像のid」とはどういうことでしょうか。具体的に入力文字列例を提示してください。あと、質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。

    キャンセル

  • dragon_2tree

    2017/04/22 14:53

    修正ありがとうございます。画像の件はあまり関係のなかったことなので忘れてください。申し訳ないです。

    キャンセル

  • kei344

    2017/04/22 14:55

    質問本文は編集することが可能なので、編集よろしくお願いします。

    キャンセル

回答 1

checkベストアンサー

+2

HTMLを見ると、テキストエリアではなく、テキストボックスのようですが。
「画像のid」がよくわからなくて、結果的にどうなれば良いのかわかりかねますが、「選択」テキストボックスがreadonlyなので、とりあえず初期値「img1」を入れておきました。

これで良いのでしょうか?

削除ボタンを追加しました。レイアウトなどはご自身でお考えください。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Add a List Item from Textboxes</title>
<script src="jquery-3.1.1.min.js"></script>
<script>
$(function() {

    $(".map_tuika").on("click", function() {

        $(".show_map > ul").append(
            $("<li />")
                .text($(".sentaku").val() + " " + $(".name").val())
                .append(
                    $("<input />", {
                        type    : "button",
                        "class" : "delete",
                        value   : "削除"
                    })
                )
        );
    });

    // ".delete"は新しく追加された要素なので、上の要素から指定する。
    $(".show_map > ul").on("click", ".delete", function() {
        // 削除ボタンの1つ上の要素配下を削除する。
        $(this).parent().remove();
    });
});
</script>
</head>
<body>
<span>選択:</span><input type="text" size="15" class="sentaku" readonly="readonly"  value="img1">
<span>所有者:</span><input type="text" size="10" class="name">
<input type="button" class="map_tuika" value="追加">

<div class="show_map">
  <ul>
  </ul>
</div>
</body>
</html>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/22 14:50

    ご回答ありがとうございます。

    余計な情報を入れて混乱させてしまい申し訳ありません。
    したかったことはあなたの回答で合っています。ありがとうございます。
    画像をクリックすることでテキストのvalueに画像のidを内容として入力するようjqueryで書いていただけです。
    画像をクリック→画像につけたidをテキストに挿入
    といった感じです。ほぼ関係ないので忘れてください笑

    もう一つ質問なのですが、このコードを用いてliを追加していき、とある一つのliだけ削除したい場合どうすればいいでしょうか。
    理想としては追加したliの最後に削除ボタンがあることなのですが…。
    よろしくお願いいたします。

    キャンセル

  • 2017/04/22 16:36

    完璧です!ご回答ありがとうございました!!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る