###前提・実現したいこと
javascriptにてHTMLにて作成して、ブラウザで反映させたいです。
まず文字変換jsにて問題を作成、解説したいものをkeywordとして登録し、問題文にそのkeywordが含まれて
いる場合は、自動で変換し、HTMLに表示させる。
文字変換用jsにて keywordと問題文を作成。
↓
HTMLに反映させるjsでinnerHTMLにてブラウザに表示。(innerHTMLを使えば反映されると考えてます。)
↓
CSSで文字の色を変化させたいです。
別にこの形式にこだわりがなく、もっといい方法があればご教授願います。
###発生している問題・エラーメッセージ
うまく反映できないです。タグの部分は表示されています。
###該当のソースコード
javascript
1------------------------------------文字変換用js---------------------------------------------- 2 var str_q = new String(); 3 var str_exca_a = new String(); 4 var str_miss_a = new String(); 5 var i = 0; 6 var keystart = null; 7 var keyend = null; 8 key1start ="<span id=\"keyword1\">"; 9 key2start ="<span id=\"keyword2\">"; 10 keyend ="</span>"; 11 12var keyword = { 13 徐行:key1start + "徐行(すぐに停止できる速度:何kmとかはない)" + keyend, 14 車両横断禁止:"車両横断禁止(しゃりょうおうだんきんし)", 15 緊急自動車:"緊急自動車(きんきゅうじどうしゃ:パトカー、救急車、消防車)" 16}; 17 18function keyword_replace(i) { 19 var str_q = q[i]; 20 21 str_q = str_q.replace("徐行",keyword.徐行); 22 str_q = str_q.replace("車両横断禁止",keyword.車両横断禁止); 23 str_q = str_q.replace("緊急自動車",keyword.緊急自動車); 24 q[i] = str_q; 25 var str_exac_a = exac_a[i]; 26 str_exac_a = str_exac_a.replace("徐行",keyword.徐行); 27 str_exac_a = str_exac_a.replace("車両横断禁止",keyword.車両横断禁止); 28 str_exac_a = str_exac_a.replace("緊急自動車",keyword.緊急自動車); 29 exac_a[i] =str_exac_a ; 30 31 var str_miss_a = miss_a[i]; 32 str_miss_a = str_miss_a.replace("徐行",keyword.徐行); 33 str_miss_a = str_miss_a.replace("車両横断禁止",keyword.車両横断禁止); 34 str_miss_a = str_miss_a.replace("緊急自動車",keyword.緊急自動車); 35 miss_a[i] = str_miss_a; 36} 37------------------------------------------HTML反映部分のjavascript-------------------------- 38 document.getElementById('que').innerHTML = q[i]; //test_1.jsの配列をそのまま取り込む 39 //問題の配置をランダムにする。 40 rand = Math.floor(Math.random() * 9); 41 judge = rand % 2; 42 //console.log("rand:"+rand); 43 //console.log("judge:"+judge); 44 if (judge == 0) { 45 document.getElementById('choice1').nextSibling.nodeValue = exac_a[i]; //同上 46 document.getElementById('choice2').nextSibling.nodeValue = miss_a[i]; //同上 47 } else if (judge == 1) { 48 document.getElementById('choice1').nextSibling.nodeValue = miss_a[i]; //同上 49 document.getElementById('choice2').nextSibling.nodeValue = exac_a[i]; //同上 50 //document.querySelector('label[for="choice1"]').innerHTML="選択肢B"; 51 } 52---------------------------------------------問題文.js(追加)--------------------------------- 53var q = new Array(); 54var miss_a = new Array(); 55var exac_a = new Array(); 56 57q[0] = "1:交差点内を徐行しているとき、緊急自動車が近づいてきたので直ちに交差点内で徐行した。"; 58exac_a[0] = "○:緊急自動車が入ってきた場合の交差点内での停止は事故を起こす可能性が高まるので、交差点を避け、事故の起こりにくい道路の左側に寄って一時停止をする"; 59miss_a[0] = "×:交差点内を通行しているとき緊急自動車が近づいてきたので直ちに交差点内で徐行した"; 60 61q[1] = "2:原動機自転車においてブレーキをかける場合は、ハンドルを切っていない状態で車体が傾いていないときには前後輪のブレーキを同時にかけるのがよい。"; 62exac_a[1] = "○:前後輪のブレーキを同時にかけるのが基本であるので、転倒の危険が問題がない場合は、ブレーキは同時にかけるべきである。"; 63miss_a[1] = "×:ブレーキの前後輪の同時使用は、条件を満たした場合にかけるのが、基本であるが危険時だけであり、極力使用せず、基本的には後輪のみのほうがよい。"; 64 65q[2] = "3:車両横断禁止の標識があったが道路の左側にある自分の車庫に入るため左に横断した。"; 66exac_a[2] = "○:左折を伴う道路の横断は、道路交通法上認められています"; 67miss_a[2] = "×:車両横断禁止の標識がある場所では、横断が禁止である。"; 68 69q[3] = "4:黄色の杖を持っている歩行者がいるときは、必ず警音器を鳴らさなければならない"; 70exac_a[3] = "○:杖使用者は弱視又は全盲者が用いるため、急な対応が難しく警音器のみの警告ではなく、一時停止か徐行を行う。"; 71miss_a[3] = "×:黄色の杖を持つ歩行者には、最大限注意を促す必要があるため、警音器まで鳴らすべきである。"; 72 73q[4] = "5.上り坂の頂上付近徐行の標識がなくても徐行しなくてはならない。"; 74exac_a[4]= "○:標識がなくても元々見通しが悪いため、徐行しなければならない"; 75miss_a[4]= "×:標識がないので、必ずしも徐行する必要がない"; 76
HTML
1------------------------------------------文字表示のHTML部分---------------------------------- 2 <h1>問題集1</h1> 3 <p id="que">ここに問題が表示されます</p> 4 <form id="radiobuttom"> 5 <div> 6 <input id="choice1" type="radio" name="choice" >○○○<br> 7 <input id="choice2" type="radio" name="choice" >×××<br> 8 <input type="button" value="回答する" onclick="button_click();"> 9 <input type="button" value="終了" onclick="end_study(4);"> 10 <p id="answer"></p> 11 <p id="last"></p> 12 </div> 13 </form>
css
1.keyword1{ 2 color:#ff0000; 3}
###試したこと
ブラウザには<span id="keyword1">文字列</id>で表示されていますが、文字列で表示されています。
回答2件
あなたの回答
tips
プレビュー