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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

2137閲覧

htmlのリスト作成、色反映とjavascriptでの動きについて

asahinon

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/12/06 05:33

編集2019/12/06 06:11

HTML,javascriptを使ってリストの作成をしています。
こちらが作成しているものの図です

動きとしては、
・+を押すとテキスト、カラー、OKボタンの表示・非表示
・OKボタンでテキストボックスで入力した内容がリストとして追加される
・学校を押すと追加されたリスト含め全てが表示・非表示

やりたいこと
カラーを選択し、OKを押した際に追加されるリストの丸○に選択した色がつくようにしたい。

html

1<ul> 2 <li onclick="clickBtn2()">学校</li> 3 <div id="school"><ul id="FavList"> 4 <script type="text/javascript" src="list.js"></script> 5 <input type="text" id="favtext" style="display:none;"> 6 <input type="color" id="choicecolor" style="display:none;"> 7 <input type="button" id="addurl" value="OK" onclick="bar();" style="display:none;"> 8 <input type="image" src="orangebutton.png" alt="追加1" onclick="clickBtn1()"> 9 </ul></div> 10</ul>

javascript

1//↓リストの追加オレンジ 2function bar() { 3 // a 要素の作成と属性の指定 4 var newAnchor = document.createElement("a"); 5 var newTxt = document.createTextNode( document.getElementById("favtext").value ); 6 newAnchor.appendChild( newTxt ); 7 newAnchor.setAttribute("target", "_blanc" ); 8 9 // li 要素の作成 10 var newLi = document.createElement("li"); 11 newLi.appendChild ( newAnchor ); 12 13 // リストに追加 14 var list = document.getElementById("FavList"); 15 list.appendChild( newLi ); 16} 17 18//↓オレンジボタン表示非表示 19//初期表示は非表示 20function clickBtn1(){ 21 const favtext = document.getElementById("favtext"); 22 const addurl = document.getElementById("addurl"); 23 const choicecolor = document.getElementById("choicecolor"); 24 25 if(favtext.style.display=="block"){ 26 // noneで非表示 27 favtext.style.display ="none"; 28 }else{ 29 // blockで表示 30 favtext.style.display ="block"; 31 } 32 33 if(addurl.style.display=="block"){ 34 // noneで非表示 35 addurl.style.display ="none"; 36 }else{ 37 // blockで表示 38 addurl.style.display ="block"; 39 } 40 41 if(choicecolor.style.display=="block"){ 42 // noneで非表示 43 choicecolor.style.display ="none"; 44 }else{ 45 // blockで表示 46 choicecolor.style.display ="block"; 47 } 48} 49 50 51//↓親要素表示非表示 52function clickBtn2(){ 53 const school = document.getElementById("school"); 54 55 if(school.style.display=="block"){ 56 // noneで非表示 57 school.style.display ="none"; 58 }else{ 59 // blockで表示 60 school.style.display ="block"; 61 } 62} 63 64 65//色適応 66var choicecolor = document.getElementById('choicecolor'); 67choicecolor.onchange = function () { 68 document.getElementById('FavList').style.backgroundColor = this.value; 69 console.log('choicecolor:'+this.value); 70} 71

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

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

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

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

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

thyda.eiqau

2019/12/06 05:38

使い古されたコピペですが、JavaとJavaScriptはインドとインドネシアくらい違います
miyabi_takatsuk

2019/12/06 05:39

タイトルがjavaになってます。 javaとjavascriptは全く違うプログラミング言語なので、質問の修正をお願いします。 質問は編集できます。 また、タイトルには、質問要件を入れるようにしましょう。 今のままでは、何がわからないのかまったくわからず、見てもらえる可能性が低くなりますので。
guest

回答3

0

ulの中に直接divやulをおいていますがNGです
もしやるなら学校の後ろの「</li>」を「</ul>」の直前に移動するとか?
(どういう構造にしたいのかわからないですが・・・)

投稿2019/12/06 05:45

yambejp

総合スコア114779

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

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

0

ベストアンサー

HTMLの構造の問題は気になりますが今回の問題に直接影響していないっぽいので、指摘は他の方に任せつつ…。

単純に「色を選択しOKボタンを押すとリストの丸に色」について回答します。

先頭のリストマーク(●)は、一部ブラウザを除いてフォントの色と連動しますので、処理としては追加した <li> に対して style.color で choicecolorに格納された色を渡してあげる事で適用されます。

適用する場所は

JavaScript

1// li 要素の作成 2var newLi = document.createElement("li"); 3newLi.appendChild ( newAnchor );

の一番下に
newLi.style.color = document.getElementById('choicecolor').value;
※[追加したliのフォント色に(=)choicecolorに格納された色コードを指定] の意味

の処理を追記することで解決します。

質問者さんがJavaScriptの一番下で試行している //色適応 以下の5行の処理は、一旦消してから確認したほうが色の変化が見やすいと思います。

投稿2019/12/06 07:00

iss

総合スコア506

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

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

asahinon

2019/12/06 07:14

無事実行できました。ありがとうございました!!
iss

2019/12/06 07:22

解決できて良かったです! yambejpさんが指摘したのHTML構造の話も、HTMLで処理を組んでいくうえで大切な問題なので参考にしてくださいね。
guest

0

やりたいことが今一つつかめていませんが……

html

1<script type="text/javascript" src="list.js"></script> 2<ul> 3 <li> 4 <label>学校<input type="checkbox" onchange="clickBtn2(this.checked)" style="display: none;" checked></label> 5 <div id="schoolListContainer"> 6 <label> 7 <img src="./orangebutton.png"> 8 <input type="checkbox" id="isOpenAddSchoolForm" style="display: none;" onchange="clickBtn1(this.checked)"> 9 </label> 10 <form id="addSchool" onsubmit="bar(); return false;" style="display: none;"> 11 <input type="text" id="favtext"> 12 <input type="color" id="choicecolor" onchange="onColorChange(this.value)"> 13 <input type="submit" id="addurl" value="OK"> 14 </form> 15 <ul id="FavList"></ul> 16 </div> 17 </li> 18</ul>

js

1 2//↓リストの追加オレンジ 3function bar() { 4 const li = document.createElement('li'); 5 li.innerHTML = `<a target="_blank">${ 6 document.getElementById('favtext').value 7 }</a>`; 8 9 document.getElementById('FavList').appendChild(li); 10} 11 12//↓オレンジボタン表示非表示 13//初期表示は非表示 14function clickBtn1(toShow){ 15 document.getElementById('addSchool').style.display = toShow? 'block' : 'none'; 16} 17 18 19//↓親要素表示非表示 20function clickBtn2(toShow){ 21 document.getElementById('schoolListContainer').style.display = toShow? 'block' : 'none'; 22} 23 24 25//色適応 26function onColorChange(newColor) { 27 document.getElementById('FavList').style.backgroundColor = newColor; 28 console.log('choicecolor:', newColor); 29}

投稿2019/12/06 06:49

thyda.eiqau

総合スコア2982

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問