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

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

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

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

HTML

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

解決済

ifとelse ifの条件分岐がわかりません

fattc
fattc

総合スコア1

JavaScript

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

HTML

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

1回答

0評価

2クリップ

243閲覧

投稿2022/05/24 11:34

編集2022/05/25 19:26

私は、今時刻表検索サイトを作っています。
htmlにある表(下に記述)から時刻を取得して(>=現在時刻)となる行を取得するプログラムを書いています

時刻種別行先
18:49普通〇〇
18:52快速〇〇
19:02普通〇〇

18:53~18:59の間に指定するとエラーが発生します。

HTML

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>時刻表検索サイト</title> <script type="text/javascript"> var now; var nhour; var nmin; var scel; window.onload = serch; function serch(a){ now = new Date(); nhour= now.getHours(); if(now.getMinutes() < 10){ nmin = "0" + now.getMinutes(); }else{ nmin= now.getMinutes();} var nyou = now.getDay(); if(a==1){ nhour=window.prompt("時を入力してください。(例:8, 17)"); nmin=window.prompt("分を入力してください。(例:04, 37)"); if(nhour=="" || nmin==""){ serch(1); } } var rowu; var rowa; var elements = document.getElementsByClassName('date'); for(i=0;i<elements.length;i++){ elements[i].innerHTML = "平日 Weekdays"; elements[i].style.backgroundColor = '#ffffff'; elements[i].style.color = '#000000'; } if( nhour ==23 && nmin>47 ){ var row = 215; }else if( nhour ==0 && nmin<=2 ){ var row = 215; }else if(nhour < 5){ var row = 0; }else{ for(var row=0; row<=1000; row++){ time1 = weekJRAk.rows[row].cells[0].innerHTML; time = time1.split(':'); if( nhour == time[0]){ if( nmin <= time[1]){ break;} }else if(nhour + 1 == time[0]){ if( nmin >= 0){ break;} }}}; var Aksenpatsu =(weekJRAk.rows[row].cells[0].innerHTML); var Akjihatsu =(weekJRAk.rows[row + 1].cells[0].innerHTML); var Akjijihatsu =(weekJRAk.rows[row + 2].cells[0].innerHTML); var Akyonhatsu =(weekJRAk.rows[row + 3].cells[0].innerHTML); var Akgohatsu =(weekJRAk.rows[row + 4].cells[0].innerHTML); var Aksenpatsusort =(weekJRAk.rows[row].cells[1].innerHTML); var Akjihatsusort =(weekJRAk.rows[row + 1].cells[1].innerHTML); var Akjijihatsusort=(weekJRAk.rows[row + 2].cells[1].innerHTML); var Akyonhatsusort=(weekJRAk.rows[row + 3].cells[1].innerHTML); var Akgohatsusort=(weekJRAk.rows[row + 4].cells[1].innerHTML); var Aksenpatsufor =(weekJRAk.rows[row].cells[2].innerHTML); var Akjihatsufor =(weekJRAk.rows[row + 1].cells[2].innerHTML); var Akjijihatsufor=(weekJRAk.rows[row + 2].cells[2].innerHTML); var Akyonhatsufor=(weekJRAk.rows[row + 3].cells[2].innerHTML); var Akgohatsufor=(weekJRAk.rows[row + 4].cells[2].innerHTML); var Aksenpatsustop =(weekJRAk.rows[row].cells[3].innerHTML); var Akjihatsustop =(weekJRAk.rows[row + 1].cells[3].innerHTML); var Akjijihatsustop=(weekJRAk.rows[row + 2].cells[3].innerHTML); var Akyonhatsustop=(weekJRAk.rows[row + 3].cells[3].innerHTML); var Akgohatsustop=(weekJRAk.rows[row + 4].cells[3].innerHTML); topt.innerHTML= "検索時刻 "+nhour+":"+nmin; var s, d; var sa, da; for(var i=0; i<5; i++){ if(i==0){ sa=Aksenpatsusort; da=Aksenpatsufor; }else if(i==1){ sa=Akjihatsusort; da=Akjihatsufor; }else if(i==2){ sa=Akjijihatsusort; da=Akjijihatsufor; }else if(i==3){ sa=Akyonhatsusort; da=Akyonhatsufor; }else if(i==4){ sa=Akgohatsusort; da=Akgohatsufor; } s=sa; d=da; if(i==0){ var JAk1s=document.getElementById('JAk1s'); JAk1s.innerHTML=s; var JAk1d=document.getElementById('JAk1d'); JAk1d.innerHTML=d; }else if(i==1){ var JAk2s=document.getElementById('JAk2s'); JAk2s.innerHTML=s; var JAk2d=document.getElementById('JAk2d'); JAk2d.innerHTML=d; }else if(i==2){ var JAk3s=document.getElementById('JAk3s'); JAk3s.innerHTML=s; var JAk3d=document.getElementById('JAk3d'); JAk3d.innerHTML=d; }else if(i==3){ var JAk4s=document.getElementById('JAk4s'); JAk4s.innerHTML=s; var JAk4d=document.getElementById('JAk4d'); JAk4d.innerHTML=d; }else if(i==4){ var JAk5s=document.getElementById('JAk5s'); JAk5s.innerHTML=s; var JAk5d=document.getElementById('JAk5d'); JAk5d.innerHTML=d; }; }; var JAk1t=document.getElementById('JAk1t'); var JAk2t=document.getElementById('JAk2t'); var JAk3t=document.getElementById('JAk3t'); var JAk4t=document.getElementById('JAk4t'); var JAk5t=document.getElementById('JAk5t'); JAk1t.innerHTML=Aksenpatsu; JAk2t.innerHTML=Akjihatsu; JAk3t.innerHTML=Akjijihatsu; JAk4t.innerHTML=Akyonhatsu; JAk5t.innerHTML=Akgohatsu; var JAk1r=document.getElementById('JAk1r'); var JAk2r=document.getElementById('JAk2r'); var JAk3r=document.getElementById('JAk3r'); var JAk4r=document.getElementById('JAk4r'); var JAk5r=document.getElementById('JAk5r'); JAk1r.innerHTML=Aksenpatsustop; JAk2r.innerHTML=Akjihatsustop; JAk3r.innerHTML=Akjijihatsustop; JAk4r.innerHTML=Akyonhatsustop; JAk5r.innerHTML=Akgohatsustop; }; </script> <style> body{ font-family:BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif; background-color:#000000; color: #ffffff; min-width:1220px; width: auto;} #news{color:white; border-bottom: solid 5px #00bfff; font-style:italic;} h4#shi{border-bottom: solid 5px #00bfff; border-left: solid 5px #00bfff; padding: 10px} #news_info{color:#fff0b0; border-bottom: solid 5px #fff0b0; font-style:italic; margin-bottom: 5px;} h4#status{border-bottom: solid 5px #fff0b0; border-left: solid 5px #fff0b0; padding: 10px; margin-top: 5px;} h1#title{color:#00bfff;} table.display{text-align:center;} select#youbi{height:30px;} h4{color:white;} .date{ width:100%; height:auto; font-size: 25px; padding:0px; vertical-align:middle; } details summary::-webkit-details-marker { display: none; } table{color:white; border-collapse: collapse; text-align:center;} .jat{ font-size:35px; text-align:center; } .ent{ font-size:24px; text-align:center; } .title{ text-align:center; } .dtime{ font-size:60px; font-weight: 500; margin:0px; color:#ffff0b; width:150px; text-align:center; transform : scale(1, 1.5); } table td, th{ border-color: #302833; border-style: solid; border-width: 4px 0px; padding: 0.3em; } .stops{ font-size: 22px; text-align: left; vertical-align: top; } .sl{ display: inline-block; } .sl2{ width:125%; transform-origin: top left; transform : scaleX(0.8); } </style> </head> <body> <h1 id="title">時刻表検索サイト<br>Search Timetable</h1> <h3 id="news_info">運行情報 Train Status information</h3> <h4 id="status"> <br> </h4> <input type="button" value="時刻を変えて再検索" onclick="serch(1)"/> <h1><div id="topt">検索時刻 </div></h1> <br><div class="date"></div><br> <details open> <summary><img src="JRAk.jpg" alt="JR京都線 山科駅 [1][2]京都・大阪 方面" height="90px"></summary> <table id="JAk" class="details-content"> <tr> <td class="title"><span class="jat"><b>発順</b></span><br><span class="ent">Order</span></td> <td class="title"><span class="jat"><b>発車時刻</b></span><br><span class="ent">Dep. Time</span></td> <td class="title"><span class="jat"><b>種 別</b></span><br><span class="ent">Type</span></td> <td class="title"><span class="jat"><b>行 先</b></span><br><span class="ent">Destination</span></td> <td class="title"><span class="jat"><b>停車駅</b></span><br><span class="ent">Stops</span></td> </tr> <tr> <td><img src="2_1st.jpeg" alt="1st" height="80px"></td> <td><div class="dtime" id="JAk1t"></div></td> <td><div id="JAk1s"></div></td> <td><div id="JAk1d"></div></td> <td><div class="stops sl2" id="JAk1r"></div></td> </tr> <tr> <td><img src="2_2nd.jpeg" alt="2nd" height="80px"></td> <td><div class="dtime" id="JAk2t"></div></td> <td><div id="JAk2s"><span class="jat"></span></div></td> <td><div id="JAk2d"></div></td> <td><div class="stops sl2" id="JAk2r"></div></td> </tr> <tr> <td><img src="2_3rd.jpeg" alt="3rd" height="80px"></td> <td><div class="dtime" id="JAk3t"></div></td> <td><div id="JAk3s"></div></td> <td><div id="JAk3d"></div></td> <td><div class="stops sl2" id="JAk3r"></div></td> </tr> <tr> <td><img src="2_4th.jpeg" alt="4th" height="80px"></td> <td><div class="dtime" id="JAk4t"></div></td> <td><div id="JAk4s"></div></td> <td><div id="JAk4d"></div></td> <td><div class="stops sl2" id="JAk4r"></div></td> </tr> <tr> <td><img src="2_5th.jpeg" alt="5th" height="80px"></div></td> <td class="dep"><div class="dtime" id="JAk5t"></div></td> <td><div id="JAk5s"></div></td> <td><div id="JAk5d"></div></td> <td><div class="stops sl2" id="JAk5r"></div></td> </tr> </table> </details> <br><div class="date"></div><br> <h3 id="news">お知らせ information</h3> <h4 id="shi"> </h4> ▼データーベース <details> <summary>JR京都線 山科駅 [1][2]京都・大阪 方面 平日</summary> <table id="weekJRAk"> <tr> <td>18:42</td> <td>普通</td> <td>京都</td> <td>各駅</td> </tr> <tr> <td>18:46</td> <td>快速</td> <td>網干</td> <td>各駅</td> </tr> <tr> <td>18:52</td> <td>新快速</td> <td>網干</td> <td>各駅</td> </tr> <tr> <td>19:01</td> <td>快速</td> <td>網干</td> <td>各駅</td> </tr> <tr> <td>19:07</td> <td>新快速</td> <td>播州赤穂</td> <td>各駅</td> </tr> <tr> <td>23:34</td> <td>普通</td> <td>京都</td> <td>各駅</td> </tr> <tr> <td>23:45</td> <td>普通</td> <td>京都</td> <td>各駅</td> </tr> <tr> <td>23:51</td> <td>普通</td> <td>京都</td> <td>各駅</td> </tr> <tr> <td>0:08</td> <td>普通</td> <td>最終京都</td> <td>各駅</td> </tr> </table> </details> </body> </html>

nhourには18, 19などの時、nminには45, 53などの分が入っています。
weekJRAkは表のidです
↓エラー文

TypeError: undefined is not an object (evaluating 'weekJRAk.rows[row].cells')

time = の行にエラーが出ています
他の時分ならできるがその時間の最後を過ぎる(上の表で言う18:53以降)とエラーになってしまいます。

たくさんの、ご回答よろしくお願いします。
すべて試します。

文字数の関係で同じパターンのところを削除しました。
window.onloadでは作動しますが「時刻を変えて再検索」から時刻を入力して実行するとエラーになります。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

m.ts10806

2022/05/24 11:39

そもそも当該オブジェクトweekJRAkはどこにあるんでしょう。他にも提示コード内にはない変数がいきなり使われている状態です。 JavaScript全て、HTMLも全て(要はコピペで再現できるもの)を提示してください。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

JavaScript

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

HTML

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