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

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

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

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

HTML

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

Q&A

解決済

1回答

479閲覧

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

fattc

総合スコア1

JavaScript

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

HTML

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

0グッド

2クリップ

投稿2022/05/24 11:34

編集2022/05/24 12:12

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

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

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

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<title>時刻表検索サイト</title> 6 7<script type="text/javascript"> 8 9 var now; 10 var nhour; 11 var nmin; 12 var scel; 13 14 window.onload = serch; 15 16 function serch(a){ 17 18 now = new Date(); 19 20 21 22 nhour= now.getHours(); 23 24 if(now.getMinutes() < 10){ 25 nmin = "0" + now.getMinutes(); 26 }else{ 27 nmin= now.getMinutes();} 28 29 var nyou = now.getDay(); 30 if(a==1){ 31 nhour=window.prompt("時を入力してください。(例:8, 17)"); 32 nmin=window.prompt("分を入力してください。(例:04, 37)"); 33 if(nhour=="" || nmin==""){ 34 serch(1); 35 } 36 } 37 38var rowu; 39var rowa; 40 41 42 43 44 var elements = document.getElementsByClassName('date'); 45 for(i=0;i<elements.length;i++){ 46 elements[i].innerHTML = "平日 Weekdays"; 47 elements[i].style.backgroundColor = '#ffffff'; 48 elements[i].style.color = '#000000'; 49 } 50 if( nhour ==23 && nmin>47 ){ 51 var row = 215; 52 }else if( nhour ==0 && nmin<=2 ){ 53 var row = 215; 54 }else if(nhour < 5){ 55 var row = 0; 56 }else{ 57 58 for(var row=0; row<=1000; row++){ 59 time1 = weekJRAk.rows[row].cells[0].innerHTML; 60 time = time1.split(':'); 61 if( nhour == time[0]){ 62 if( nmin <= time[1]){ 63 break;} 64 }else if(nhour + 1 == time[0]){ 65 if( nmin >= 0){ 66 break;} 67 }}}; 68 69 var Aksenpatsu =(weekJRAk.rows[row].cells[0].innerHTML); 70 var Akjihatsu =(weekJRAk.rows[row + 1].cells[0].innerHTML); 71 var Akjijihatsu =(weekJRAk.rows[row + 2].cells[0].innerHTML); 72 var Akyonhatsu =(weekJRAk.rows[row + 3].cells[0].innerHTML); 73 var Akgohatsu =(weekJRAk.rows[row + 4].cells[0].innerHTML); 74 75 var Aksenpatsusort =(weekJRAk.rows[row].cells[1].innerHTML); 76 var Akjihatsusort =(weekJRAk.rows[row + 1].cells[1].innerHTML); 77 var Akjijihatsusort=(weekJRAk.rows[row + 2].cells[1].innerHTML); 78 var Akyonhatsusort=(weekJRAk.rows[row + 3].cells[1].innerHTML); 79 var Akgohatsusort=(weekJRAk.rows[row + 4].cells[1].innerHTML); 80 81 var Aksenpatsufor =(weekJRAk.rows[row].cells[2].innerHTML); 82 var Akjihatsufor =(weekJRAk.rows[row + 1].cells[2].innerHTML); 83 var Akjijihatsufor=(weekJRAk.rows[row + 2].cells[2].innerHTML); 84 var Akyonhatsufor=(weekJRAk.rows[row + 3].cells[2].innerHTML); 85 var Akgohatsufor=(weekJRAk.rows[row + 4].cells[2].innerHTML); 86 87 var Aksenpatsustop =(weekJRAk.rows[row].cells[3].innerHTML); 88 var Akjihatsustop =(weekJRAk.rows[row + 1].cells[3].innerHTML); 89 var Akjijihatsustop=(weekJRAk.rows[row + 2].cells[3].innerHTML); 90 var Akyonhatsustop=(weekJRAk.rows[row + 3].cells[3].innerHTML); 91 var Akgohatsustop=(weekJRAk.rows[row + 4].cells[3].innerHTML); 92 93 94 95 topt.innerHTML= "検索時刻 "+nhour+":"+nmin; 96 97 var s, d; 98 var sa, da; 99 for(var i=0; i<5; i++){ 100 if(i==0){ 101 sa=Aksenpatsusort; 102 da=Aksenpatsufor; 103 }else if(i==1){ 104 sa=Akjihatsusort; 105 da=Akjihatsufor; 106 }else if(i==2){ 107 sa=Akjijihatsusort; 108 da=Akjijihatsufor; 109 }else if(i==3){ 110 sa=Akyonhatsusort; 111 da=Akyonhatsufor; 112 }else if(i==4){ 113 sa=Akgohatsusort; 114 da=Akgohatsufor; 115 } 116s=sa; 117d=da; 118 119 if(i==0){ 120 var JAk1s=document.getElementById('JAk1s'); 121 JAk1s.innerHTML=s; 122 var JAk1d=document.getElementById('JAk1d'); 123 JAk1d.innerHTML=d; 124 }else if(i==1){ 125 var JAk2s=document.getElementById('JAk2s'); 126 JAk2s.innerHTML=s; 127 var JAk2d=document.getElementById('JAk2d'); 128 JAk2d.innerHTML=d; 129 }else if(i==2){ 130 var JAk3s=document.getElementById('JAk3s'); 131 JAk3s.innerHTML=s; 132 var JAk3d=document.getElementById('JAk3d'); 133 JAk3d.innerHTML=d; 134 }else if(i==3){ 135 var JAk4s=document.getElementById('JAk4s'); 136 JAk4s.innerHTML=s; 137 var JAk4d=document.getElementById('JAk4d'); 138 JAk4d.innerHTML=d; 139 }else if(i==4){ 140 var JAk5s=document.getElementById('JAk5s'); 141 JAk5s.innerHTML=s; 142 var JAk5d=document.getElementById('JAk5d'); 143 JAk5d.innerHTML=d; 144 }; 145 }; 146 147 var JAk1t=document.getElementById('JAk1t'); 148 var JAk2t=document.getElementById('JAk2t'); 149 var JAk3t=document.getElementById('JAk3t'); 150 var JAk4t=document.getElementById('JAk4t'); 151 var JAk5t=document.getElementById('JAk5t'); 152 JAk1t.innerHTML=Aksenpatsu; 153 JAk2t.innerHTML=Akjihatsu; 154 JAk3t.innerHTML=Akjijihatsu; 155 JAk4t.innerHTML=Akyonhatsu; 156 JAk5t.innerHTML=Akgohatsu; 157 158 var JAk1r=document.getElementById('JAk1r'); 159 var JAk2r=document.getElementById('JAk2r'); 160 var JAk3r=document.getElementById('JAk3r'); 161 var JAk4r=document.getElementById('JAk4r'); 162 var JAk5r=document.getElementById('JAk5r'); 163 JAk1r.innerHTML=Aksenpatsustop; 164 JAk2r.innerHTML=Akjihatsustop; 165 JAk3r.innerHTML=Akjijihatsustop; 166 JAk4r.innerHTML=Akyonhatsustop; 167 JAk5r.innerHTML=Akgohatsustop; 168 }; 169</script> 170<style> 171 body{ font-family:BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif; 172 background-color:#000000; 173 color: #ffffff; 174 min-width:1220px; 175 width: auto;} 176 177 #news{color:white; 178 border-bottom: solid 5px #00bfff; 179 font-style:italic;} 180 181 h4#shi{border-bottom: solid 5px #00bfff; 182 border-left: solid 5px #00bfff; 183 padding: 10px} 184 185 #news_info{color:#fff0b0; 186 border-bottom: solid 5px #fff0b0; 187 font-style:italic; 188 margin-bottom: 5px;} 189 190 h4#status{border-bottom: solid 5px #fff0b0; 191 border-left: solid 5px #fff0b0; 192 padding: 10px; 193 margin-top: 5px;} 194 195 h1#title{color:#00bfff;} 196 197 198 table.display{text-align:center;} 199 200 select#youbi{height:30px;} 201 202 203 h4{color:white;} 204 205 .date{ 206 width:100%; 207 height:auto; 208 font-size: 25px; 209 padding:0px; 210 vertical-align:middle; 211 212 } 213 214 details summary::-webkit-details-marker { 215 display: none; 216 } 217 218 table{color:white; 219 border-collapse: collapse; 220 text-align:center;} 221 222 223.jat{ 224 font-size:35px; 225 text-align:center; 226 } 227 .ent{ 228 font-size:24px; 229 text-align:center; 230 231 } 232 .title{ 233 text-align:center; 234 } 235 .dtime{ 236 font-size:60px; 237 font-weight: 500; 238 margin:0px; 239 color:#ffff0b; 240 width:150px; 241 text-align:center; 242 transform : scale(1, 1.5); 243 } 244 245 table td, th{ 246 border-color: #302833; 247 border-style: solid; 248 border-width: 4px 0px; 249 padding: 0.3em; 250 } 251 252 .stops{ 253 font-size: 22px; 254 text-align: left; 255 vertical-align: top; 256 } 257 .sl{ 258 display: inline-block; 259 260 } 261 262 263.sl2{ 264 265 width:125%; 266 transform-origin: top left; 267 transform : scaleX(0.8); 268} 269 270</style> 271 272</head> 273<body> 274<h1 id="title">時刻表検索サイト<br>Search Timetable</h1> 275 276 <h3 id="news_info">運行情報 Train Status information</h3> 277 278 <h4 id="status"> 279 <br> 280 281 </h4> 282 283<input type="button" value="時刻を変えて再検索" onclick="serch(1)"/> 284 285<h1><div id="topt">検索時刻 </div></h1> 286<br><div class="date"></div><br> 287<details open> 288 <summary><img src="JRAk.jpg" alt="JR京都線 山科駅 [1][2]京都・大阪 方面" height="90px"></summary> 289<table id="JAk" class="details-content"> 290 <tr> 291 <td class="title"><span class="jat"><b>発順</b></span><br><span class="ent">Order</span></td> 292 <td class="title"><span class="jat"><b>発車時刻</b></span><br><span class="ent">Dep. Time</span></td> 293 <td class="title"><span class="jat"><b>種 別</b></span><br><span class="ent">Type</span></td> 294 <td class="title"><span class="jat"><b>行 先</b></span><br><span class="ent">Destination</span></td> 295 <td class="title"><span class="jat"><b>停車駅</b></span><br><span class="ent">Stops</span></td> 296 </tr> 297 <tr> 298 <td><img src="2_1st.jpeg" alt="1st" height="80px"></td> 299 <td><div class="dtime" id="JAk1t"></div></td> 300 <td><div id="JAk1s"></div></td> 301 <td><div id="JAk1d"></div></td> 302 <td><div class="stops sl2" id="JAk1r"></div></td> 303 </tr> 304 <tr> 305 <td><img src="2_2nd.jpeg" alt="2nd" height="80px"></td> 306 <td><div class="dtime" id="JAk2t"></div></td> 307 <td><div id="JAk2s"><span class="jat"></span></div></td> 308 <td><div id="JAk2d"></div></td> 309 <td><div class="stops sl2" id="JAk2r"></div></td> 310 </tr> 311 <tr> 312 <td><img src="2_3rd.jpeg" alt="3rd" height="80px"></td> 313 <td><div class="dtime" id="JAk3t"></div></td> 314 <td><div id="JAk3s"></div></td> 315 <td><div id="JAk3d"></div></td> 316 <td><div class="stops sl2" id="JAk3r"></div></td> 317 </tr> 318 <tr> 319 <td><img src="2_4th.jpeg" alt="4th" height="80px"></td> 320 <td><div class="dtime" id="JAk4t"></div></td> 321 <td><div id="JAk4s"></div></td> 322 <td><div id="JAk4d"></div></td> 323 <td><div class="stops sl2" id="JAk4r"></div></td> 324 </tr> 325 <tr> 326 <td><img src="2_5th.jpeg" alt="5th" height="80px"></div></td> 327 <td class="dep"><div class="dtime" id="JAk5t"></div></td> 328 <td><div id="JAk5s"></div></td> 329 <td><div id="JAk5d"></div></td> 330 <td><div class="stops sl2" id="JAk5r"></div></td> 331 </tr> 332</table> 333</details> 334<br><div class="date"></div><br> 335<h3 id="news">お知らせ information</h3> 336<h4 id="shi"> 337</h4> 338 339▼データーベース 340<details> 341<summary>JR京都線 山科駅 [1][2]京都・大阪 方面 平日</summary> 342<table id="weekJRAk"> 343 <tr> 344 <td>18:42</td> 345 <td>普通</td> 346 <td>京都</td> 347 <td>各駅</td> 348 </tr> 349 <tr> 350 <td>18:46</td> 351 <td>快速</td> 352 <td>網干</td> 353 <td>各駅</td> 354 </tr> 355 <tr> 356 <td>18:52</td> 357 <td>新快速</td> 358 <td>網干</td> 359 <td>各駅</td> 360 </tr> 361 <tr> 362 <td>19:01</td> 363 <td>快速</td> 364 <td>網干</td> 365 <td>各駅</td> 366 </tr> 367 <tr> 368 <td>19:07</td> 369 <td>新快速</td> 370 <td>播州赤穂</td> 371 <td>各駅</td> 372 </tr> 373 374 <tr> 375 <td>23:34</td> 376 <td>普通</td> 377 <td>京都</td> 378 <td>各駅</td> 379 </tr> 380 <tr> 381 <td>23:45</td> 382 <td>普通</td> 383 <td>京都</td> 384 <td>各駅</td> 385 </tr> 386 <tr> 387 <td>23:51</td> 388 <td>普通</td> 389 <td>京都</td> 390 <td>各駅</td> 391 </tr> 392 <tr> 393 <td>0:08</td> 394 <td>普通</td> 395 <td>最終京都</td> 396 <td>各駅</td> 397 </tr> 398</table> 399</details> 400 401</body> 402</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では作動しますが「時刻を変えて再検索」から時刻を入力して実行するとエラーになります。

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

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

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

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

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

m.ts10806

2022/05/24 11:39

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

回答1

0

ベストアンサー

18時54分と入力した時のnhour"18"であって、18ではないです。
18+119ですが、"18"+1"181"です。

ユーザによって入力されたテキストを含む文字列、または、null 値です。
window.prompt - Web API | MDN

投稿2022/05/25 04:27

Lhankor_Mhy

総合スコア36115

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

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

fattc

2022/05/25 09:55

var shour=window.prompt("時を入力してください。(例:8, 17)"); nhour = Number(shour); var smin=window.prompt("分を入力してください。(例:04, 37)"); nmin = Number(smin); このように改善したらできました。 確かに、言われてみればそうでした。基礎でした。 分かりやすい回答ありがとうございました。
Lhankor_Mhy

2022/05/25 10:26

お役に立てたようで何よりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問