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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1033閲覧

jQuery-文字のデータを交互に表示させたい

emeraldturtle

総合スコア10

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/02/26 10:18

編集2020/02/26 14:01

イメージ説明##前提・実現したいこと
① 最初に文字を登録するとき、最初は左の位置に保存
② 2回目に文字を登録するときは、右の位置にデータを保存
③ 2つのデータを保存した後、3回目のデータを登録後、自動的に改行して①の動作に戻る
###登録してデータが保存するたびに、①~③の流れをループさせたい

##発生している問題・エラーメッセージ
1 改行されず、wrapperの枠内からはみ出してしまう
2 文字を右、左交互に表示させたいのにできない

##使用している言語
-HTML
-CSS
-jQuery

##HTMLとCSSのソースコード

html

1<!DOCTYPE html> 2<html lang="ja" manifest="cache.manifest"> 3<head> 4<title>ToDoリスト</title> 5<meta charset="utf-8"> 6<meta name="viewport" content="width=device-width"> 7<link rel="apple-touch-icon" href="images/icon.png" /> 8<link rel="stylesheet" type="text/css" href="css/main.css" media="all"> 9<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 10 11<script src="js/main.js"></script> 12 13</head> 14<body> 15<div id="wrapper"> 16<h1>ToDoリスト</h1> 17 18<article> 19 20<section> 21<form class="todoForm"> 22<div> 23<input type="text" class="todoText" placeholder="予定を入力して下さい"> 24</div> 25<div id="buttons"> 26<input type="submit" class="submit" value="登録" id="button"> 27<input type="button" class="clear" value="全てクリア" id="button2"> 28</div> 29</form> 30</section> 31 32<section id="list"> 33<ul class="todoList"> 34 <ul></ul> 35</ul> 36</section> 37 38</article> 39 </div> 40</body> 41</html> 42

CSS

1* { 2 margin: 0; 3 padding: 0; 4 font-size: 20px; 5} 6body { 7 background-image: url(../images/b031.gif); 8 background-repeat: repeat; 9 color: black; 10} 11input[type="text"] { 12 width: 350px; 13} 14.complete { 15 color: #bbb; 16 text-decoration: line-through; 17} 18.remove,.remove2 { 19 font-size: 12px; 20 font-family: sans-serif; 21 display: inline-block; 22 padding: 1px 4px; 23 background: #a73836; 24 color: #fff; 25 border-radius: 3px; 26 margin-left: 10px; 27 font-weight: bold; 28 text-decoration: none; 29 cursor: pointer; 30 31 32} 33article { 34 margin: 15px; 35} 36h1 { 37 color: #fff; 38 text-align: center; 39 font-size: 1.2em; 40 padding: 10px; 41} 42 43#list li { 44 padding: 20px; 45 list-style: none; 46 justify-content: center; 47} 48form div { 49 margin: 10px 0px 20px 0px; 50} 51.todoInput { 52 border-style: none; 53 padding: 5px; 54 color: #999; 55 background: #fff; 56 border-radius: 5px; 57} 58 59#buttons{ 60 width:220px; 61 display: flex; 62 justify-content: space-between; 63} 64 65.submit { 66 border-style: none; 67 padding: 4px 10px; 68 color: #fff; 69 cursor: pointer; 70 background: #b8d200; 71 border-radius: 5px; 72 font-weight: bold; 73} 74 75.clear { 76 border-style: none; 77 padding: 4px 10px; 78 color: #fff; 79 cursor: pointer; 80 background-color:#D7595B; 81 border-radius: 5px; 82 font-weight: bold; 83} 84 85 86#wrapper { 87 margin: 0 auto; 88 width: 960px; 89 height: 1080px; 90 background-image: url(../images/b066.gif); 91} 92 93 94 95 96 97 98ul.todoList { 99 width: 200px; 100 display:flex; 101 102 103}

#jQueryのソースコード

jQuery

1$(function(){ 2 3//1.登録ボタンをクリックしたときの処理。 4//1-1入力されたテキストを変数に格納する 5//1-2削除ボタン用のspanタグを変数に格納する 6//1-3HTML中に書き込まれるliの内容を変数に格納する 7//1-4入力したテキストを表示する(空のときはアラートを出す) 8//1-5ulの中に変数に格納したliタグを追加する 9//1-6追加後、二重投稿を防ぐためにテキスト欄を空欄にする 10 11$('#button').click(function(){ 12 var Text=$('.todoText').val();//1-1 13 var resetBtn='<span class="remove">×</span>';//1-2 14 var listSet="<li>"+Text+resetBtn+"</li>";//1-3 15 16if(Text==""){ 17 alert("予定を入力して下さい"); 18 return false; 19 }else{ 20 $('ul.todoList').append(listSet); 21 Text=""; 22 $('.todoText').val(Text); 23 24//a.ローカルストレージにデータを保存(複数のデータを保存したい場合はJSON形式のデータとして保存する) 25//a-1追加されたliを全て取得して変数に格納する 26//a-2そのデータをJSONデータに変換してから別の変数に格納する 27//a-3そのデータを保存する 28var ulContent=$('ul').html();//a-1 ulの子要素を取得 29var listObj=JSON.stringify(ulContent);//a-2 30localStorage.setItem('Key',listObj);//a-3 31 32 return false; 33 } 34 35}) 36 37 38//2.全てクリアボタン OKとキャンセルをアラートで表示する 39$('#button2').click(function(){ 40 if(!confirm('本当に削除しますか?')){ 41 return false;}else{ 42 $("li").fadeOut(); 43//c.ローカルストレージに保存された全データを消去する 44localStorage.removeItem("keyName"); 45 } 46}) 47 48 49//3.削除ボタン ※注意 append()で追加された要素にclick()は効かないので、on()を使う 50//3-1クリックされたliのインデックス番号を調べ、そのliのみをremove()で消す 51$(document).on('click','li',function(){ 52var indexNum=$('li').index(this); 53$("li:eq("+indexNum+")").remove(); 54 55//d.削除後残ったliをあらためて取得する 56localStorage.clear();//全データを消去 57var ulContent=$('ul').html();//残ったulの子要素liを取得 58var listObj=JSON.stringify(ulContent);//JSONデータに変換してから変数に格納 59localStorage.setItem('Key',listObj);//そのデータを保存 60 61}) 62 63 64//b.保存したデータを取得して、JSONデータからJavaScriptのオブジェクトに変換してから表示する 65var jsonObj=localStorage.getItem('Key');//取得 66var jsObj=JSON.parse(jsonObj);//JSオブジェクトに変換(liが入っている) 67$("ul").html(jsObj);//ulの中にliを追加する 68 69 70 71}); 72 73 74

よろしくお願いします

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

左とか右とかちょっと分かりづらい表現なので手書きで良いので図示したほうがよいでしょう。
基本的にはCSSで指定するだけで右左をわけることは可能だとは思います

投稿2020/02/26 11:23

編集2020/02/27 01:41
yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

emeraldturtle

2020/02/27 01:07

手書きで図示してみました。
yambejp

2020/02/27 01:42

codepenサンプルを追記しておきました 値を追加するのはあくまでもリストの追加のみで処理し 左右に振り分けるのはflexで処理するとよいでしょう
emeraldturtle

2020/02/27 03:22

ありがとうございます! さっきcodepenのサンプルコードを使ってみました。 複数のデータがある際、指定のliだけ削除する機能も追加したかったのですが、システム上難しいでしょうか?
yambejp

2020/02/27 03:41 編集

> 指定のliだけ削除 指定の仕方次第でしょうね チェックボックスで指定する感じでよいですか? あと、行ごと削除、左右個別に削除、どちらでしょう?
emeraldturtle

2020/02/27 03:49

あと、すいません。 チェックボックスで指定してから削除ですね
emeraldturtle

2020/02/27 04:07

ありがとうございます! これを元に、自分でカスタムしてやってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問