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

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

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

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

Q&A

解決済

2回答

481閲覧

変数letを同じスコープ内に同じ名前を使用したため、エラーが出てしまいました。

nanase21

総合スコア144

JavaScript

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

0グッド

0クリップ

投稿2019/02/17 13:30

編集2019/02/17 13:51

前提・実現したいこと

参考にしたカレンダー
上記のリンクにあった予約システムライクなカレンダーに予約が入ったらカレンダーに◯からーに表示させたいと実装中に私が追記したコードを実行するとカレンダーが消えてしまいました。
原因としては戻り値のtable dに問題があるのではないかと仮説を立て、console.logでエラー原因を探してみたものも見つけることができませんでした。
そこで、上記のリンクの先の質問に回答していた@hai_haiさんという方にお聞きしたらところ、「let を使うときは同じスコープ内では、同じ名前の変数は使うことができません。」とご教授していただいたのですが、私の現在の理解力ではどのようにコーディングをすればいいか分からないです。

発生している問題・エラーメッセージ

エラー原因と考えられるコード
setHolidayをコードを参考にランチタイム休憩と予約が入った時の実装をしたのですが、実行してみたところ表示されていたカレンダーが消えてしまいました。
それで色々試してみたところ、let c = new Shedule (new Date,7,BUSY, opt), {table: d} = c;が複数あると消えてしまうようです。

js

1//_____________ 2let opt = { handleEvent: optCallBackFunction }; 3let c = new Shedule (new Date,7,BUSY, opt), {table: d} = c; 4let num = [1,3,5]; 5for(let i=0;i<num.length;i++){ 6 c.setHoliday (num[i]); 7} 8 9 //ランチタイム休憩 10 let opt_second = { handleEvent: optCallBackFunction }; 11 let c_second = new Shedule (new Date,7,BUSY, opt), {table: d} = c_second; 12 let week_lunchtime = [1,2,3,4,5,6,7]; 13 14 for(let i=0;i<week_lunchtime.length;i++){ 15 c_second.setLunchTime (week_lunchtime[i]); 16 } 17 18 //予約入った時 例) 2月25日 12時 3時間コースと予約が入った時、2/25 12~15時の間を予約不可にしたい。 19let opt = { handleEvent: optCallBackFunction }; 20let c_third = new Shedule (new Date,7,BUSY, opt), {table: d} = c_third; 21 22let num = [{ 23day: 1, 24start: 9, 25end: 10 26},{ 27day: 2, 28start: 9, 29end: 11 30}]; 31for(var i=0;i<num.length;i++){ 32 c_third.setBook (num[i].day, num[i].start, num[i].end); 33}

該当のソースコード

全コード

js

1{ 2 const 3 day_name = [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], 4 day_jname = ['(Sun.)', '(Mon.)', '(Tue.)', '(Wed.)', '(Thu.)', '(Fri.)', '(Sat.)'], 5 doc = document, 6 DEF_OPTION = { }; 7 8 const 9 A = (e, ...a) => a.map (a => e.appendChild (doc.createElement (a))), 10 B = (d, n) => d.setDate (d.getDate () + n), 11 C = d => [d.getFullYear (), '年', d.getMonth () + 1 , '月'].join (''), 12 D = d => [('0' + d.getHours ()).slice (-2), ('0' + d.getMinutes ()).slice (-2)].join (':'), 13 E = (e, d) => { 14 let 15 [a,,b] = A (e, 'label', 'br', 'label'), 16 w = d.getDay () ; 17 a.textContent = d.getDate (); 18 b.textContent = day_jname[w]; 19 e.classList.add (day_name[w]); 20 }, 21 F = d => { 22 let m = d.getMonth (); 23 return [0,31,59,90,120,151,181,212,243,273,304,334][m] + d.getDate() - 1 + 24 (new Date (d.getFullYear (), m + 1,0) === 29 && 0 < m); 25 }, 26 G = ary => ary.reduce ((a, b) => { 27 let 28 c = typeof b === 'string' ? new Date (b +':00.000+09:00'): b, 29 d = D (c); 30 if (! (d in a)) a[d] = []; 31 a[d][F(c)] = true; 32 return a; 33 }, { }) 34 , 35 H = d => new Date (d.getFullYear (), d.getMonth (), d.getDate ()), 36 I = d => [('0' + d.getUTCHours ()).slice (-2), ('0' + d.getUTCMinutes ()).slice (-2)].join (':'); 37 38 39 //_____________ 40 41 class Shedule { 42 constructor (date = new Date, range = 7, plan = [], option = DEF_OPTION) { 43 this.current = H (date); 44 this.date = H (date); 45 this.range = range; 46 this.plan = G (plan); 47 this.table = document.createElement ('table'); 48 this.option = Object.assign ({}, option); 49 50 this.remake (); 51 } 52 53 54 add (day = this.range) { 55 let d = H (this.current); 56 d.setDate (d.getDate () + day); 57 if (+this.date <= +d) { 58 this.current = d; 59 this.remake (); 60 } 61 } 62 63 64 setHoliday (dayNo) { 65 let 66 year = this.current.getFullYear (), 67 start = new Date (year, 0, 1), 68 end = new Date (year, 12, 1), 69 current = new Date (start), 70 71 b = new Date (Date.UTC (1970,0,1, 0, 0)),//列のスタート時間 72 e = new Date (Date.UTC (1970,0,1,24, 30)),//列の終了時間 73 s = new Date (Date.UTC (1970,0,1, 0,30));//列の感覚調整時間 74 75 current.setDate (7 - current.getDate () + dayNo); 76 77 for (; current < end; current.setDate (current.getDate () + 7)) { 78 let idx = F (current); 79 80 for (let c = b; c < e; c = new Date (+s + (+c))) { 81 let key = I (c); 82 if (! this.plan[key]) 83 this.plan[key] = [ ]; 84 this.plan[key][idx] = true; 85 } 86 } 87 88 this.remake (); 89 } 90 91 92 93 setLunchTime (dayNo) { 94 let 95 year = this.current.getFullYear (), 96 start = new Date (year, 0, 1), 97 end = new Date (year, 12, 1), 98 current = new Date (start), 99 100 b = new Date (Date.UTC (1970,0,1, 12, 0)),//列のスタート時間 101 e = new Date (Date.UTC (1970,0,1,13, 30)),//列の終了時間 102 s = new Date (Date.UTC (1970,0,1, 0,30));//列の感覚調整時間 103 104 current.setDate (7 - current.getDate () + dayNo); 105 106 for (; current < end; current.setDate (current.getDate () + 7)) { 107 let idx = F (current); 108 109 for (let c = b; c < e; c = new Date (+s + (+c))) { 110 let key = I (c); 111 if (! this.plan[key]) 112 this.plan[key] = [ ]; 113 this.plan[key][idx] = true; 114 } 115 } 116 117 this.remake (); 118 } 119 120 121 //Booking 122 /* setBook (dayNo, startHour, endHour) { 123 let 124 year = this.current.getFullYear (), 125 start = new Date (year, 0, 1), 126 end = new Date (year, 12, 1), 127 current = new Date (start), 128 129 b = new Date (Date.UTC (1970,0,1, startHour, 0)),//列のスタート時間 130 e = new Date (Date.UTC (1970,0,1, endHour, 0)),//列の終了時間 131 s = new Date (Date.UTC (1970,0,1, 0,30));//列の感覚調整時間 132 133 current.setDate (7 - current.getDate () + dayNo); 134 135 for (; current < end; current.setDate (current.getDate () + 7)) { 136 let idx = F (current); 137 138 for (let c = b; c < e; c = new Date (+s + (+c))) { 139 let key = I (c); 140 if (! this.plan[key]) 141 this.plan[key] = [ ]; 142 this.plan[key][idx] = true; 143 } 144 } 145 146 this.remake (); 147 } */ 148 149 remake () { 150 this.prev_btn = this.next_btn = null; 151 let t = this.table; 152 [...t.childNodes].forEach (e => e.remove ()); 153 154 let 155 h = t.createTHead (), 156 tr0 = h.insertRow (-1), 157 tr1 = h.insertRow (-1), 158 d = H (this.current), 159 s = tr0.insertCell (-1), 160 c = 1, 161 m = d.getMonth (); 162 163 for (let i = 0; i < this.range; i++, c++, B (d, 1)) { 164 let td = tr1.insertCell (-1); 165 if (m !== d.getMonth ()) { 166 s.colSpan = c - 1; 167 s = tr0.insertCell (-1); 168 m = d.getMonth (); 169 c = 1; 170 } 171 s.textContent = C (d); 172 E (td, d); 173 } 174 s.colSpan = c - 1; 175 176 let e = tr0.insertCell (0); 177 e.textContent = '前の一週間'; 178 e.classList.add ('button'); 179 e.rowSpan = 2; 180 this.prev_btn = e; 181 182 e = tr0.insertCell (-1); 183 e.textContent = '次の一週間'; 184 e.classList.add ('button'); 185 e.rowSpan = 2; 186 this.next_btn = e; 187 188 //__ 189 let 190 begin = new Date (Date.UTC (1970,0,1, 9, 0)),//列のスタート時間 191 end = new Date (Date.UTC (1970,0,1,15, 30)),//列の終了時間 192 step = new Date (Date.UTC (1970,0,1, 0,30)),//列の感覚調整時間 193 o = F (this.current), 194 rst = [ ]; 195 196 for (let d = begin; d < end; d = new Date (+step + (+d))) { 197 let 198 a = new Array (this.rangi), 199 b = I (d), 200 c = this.plan[b] || []; 201 202 for (let i = 0; i < this.range; i++) 203 a[i] = c[o + i] ? '-' : '◎'; 204 205 rst.push ([b, ...a, b]); 206 } 207 208 let [tb] = A (t, 'tbody'); 209 rst.forEach (r => { 210 let tr = tb.insertRow (-1); 211 r.forEach (c => tr.insertCell (-1).textContent = c) 212 }); 213 } 214 215 216 handleEvent (event) { 217 let t = event.target; 218 if (t === this.prev_btn) this.add (-this.range); 219 if (t === this.next_btn) this.add (this.range); 220 221 let cbfunc = this.option.handleEvent; 222 if ('function' === typeof cbfunc) 223 cbfunc.call (this, event); 224 } 225 226 } 227 228 this.Shedule = Shedule; 229} 230 231//_____________ 232 233const BUSY = ['2019-02-12T10:00']; 234 235function optCallBackFunction (event) { 236 const 237 getParent = (n, e) => { 238 do {if (n === e.tagName) break;} while (e = e.parentNode); 239 return e; 240 }; 241 242 let 243 td = event.target; 244 inp = document.querySelector("#acdn-target"), 245 tr = this.table.querySelector('thead tr:nth-of-type(2)'), 246 d = new Date (this.current); 247 248 if ('click' === event.type) { 249 if (tr.compareDocumentPosition (td) & 16) { 250 td = getParent ('TD', td); 251 d.setDate (d.getDate () + td.cellIndex); 252 inp.value = [].join (''); //いらならい 253 } 254 } 255} 256 257 258//_____________ 259let opt = { handleEvent: optCallBackFunction }; 260let c = new Shedule (new Date,7,BUSY, opt), {table: d} = c; 261let num = [1,3,5]; 262for(let i=0;i<num.length;i++){ 263 c.setHoliday (num[i]); 264} 265 266 //ランチタイム休憩 267 let opt_second = { handleEvent: optCallBackFunction }; 268 let c_second = new Shedule (new Date,7,BUSY, opt), {table: d} = c_second; 269 let week_lunchtime = [1,2,3,4,5,6,7]; 270 271 for(let i=0;i<week_lunchtime.length;i++){ 272 c_second.setLunchTime (week_lunchtime[i]); 273 } 274 275 //予約入った時 例) 2月25日 12時 3時間コースと予約が入った時、2/25 12~15時の間を予約不可にしたい。 276let opt = { handleEvent: optCallBackFunction }; 277let c_third = new Shedule (new Date,7,BUSY, opt), {table: d} = c_third; 278 279let num = [{ 280day: 1, 281start: 9, 282end: 10 283},{ 284day: 2, 285start: 9, 286end: 11 287}]; 288for(var i=0;i<num.length;i++){ 289 c_third.setBook (num[i].day, num[i].start, num[i].end); 290} 291

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

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

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

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

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

guest

回答2

0

違う用途であれば別の変数名をつける。
「上書き・用途によって値が代入される」なのであればletを外す だけかと思います。
そこは実際のコードのロジック・変数・関数のそれぞれにきちんと意味を考えることで解決できると思いますし、
ご自身で作られているプログラムの「仕様」にもなるので、決めてください。

コーディングのルールにもつながる部分なので、下記の記事など参考になるかと、。

変数についても言及があります。

投稿2019/02/17 13:50

m.ts10806

総合スコア80850

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

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

0

ベストアンサー

オブジェクト指向的なプログラムなので見慣れないのは致し方がないね。
前半の定義はどうであれ、最後のあたりのコードを見てください。

どちらにしろ、もともとが思い付きで書いたものなので、年をまたぐと
おかしくなります。

new Shedule を複数行うということは、異なる複数の予定表を画面に
表示することを意味します。

そんなにネストしてないとおもうけどな~。
関数名が雑なのはごめん。

休日とランチタイムは、一度に指定できるように変更。
予約もできるようにしたけれど、悪ふざけのようなものだから
期待しないでね

Shedule のメソッドの最後に this を返すように変更しました。なので、
shedule.add(7).setBook(date, 90).remake ();
みたいに繋げてかけます。

--
時間の計算などを行うとき、date オブジェクトを使わずに数値で計算する人が
多いけれど、私はそれに反対派。
イベントもルートで監視する派。
なるべくならオブジェクト指向で書きたい派。(うまくできてないけれど)

がんばってね~。

javascript

1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4 5<style> 6#calendar td { text-align: center; font-size: 80%; } 7#calendar .sun { background: rgba(255,0,0,.1); color: rgba(255,0,0,1); } 8#calendar .sat { background: rgba(0,0,255,.1); color: rgba(0,0,255,1); } 9#calendar .button { color: blue; text-decoration: underline; } 10#calendar .button:hover { color: red; } 11#calendar table, #calendar td { border: 1px gray solid; padding: 4px;} 12#calendar table { border-collapse: collapse; border-spacing: 0; } 13#calendar tbody tr:nth-of-type(odd) { background: rgba(0,0,0,.05); } 14</style> 15 16<body> 17<div id="calendar"></div> 18<input type="text" class= "text" id="acdn-target" onselect="click_date" readonly> 19 20<script> 21 22{ 23 const 24 day_name = [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], 25 day_jname = ['(Sun.)', '(Mon.)', '(Tue.)', '(Wed.)', '(Thu.)', '(Fri.)', '(Sat.)'], 26 doc = document, 27 DEF_OPTION = { }; 28 29 const 30 A = (e, ...a) => a.map (a => e.appendChild (doc.createElement (a))), 31 B = (d, n) => d.setDate (d.getDate () + n), 32 C = d => [d.getFullYear (), '年', d.getMonth () + 1 , '月'].join (''), 33 D = d => [('0' + d.getHours ()).slice (-2), ('0' + d.getMinutes ()).slice (-2)].join (':'), 34 E = (e, d) => { 35 let 36 [a,,b] = A (e, 'label', 'br', 'label'), 37 w = d.getDay () ; 38 a.textContent = d.getDate (); 39 b.textContent = day_jname[w]; 40 e.classList.add (day_name[w]); 41 }, 42 F = d => { 43 let m = d.getMonth (); 44 return [0,31,59,90,120,151,181,212,243,273,304,334][m] + d.getDate() - 1 + 45 (new Date (d.getFullYear (), m + 1,0) === 29 && 0 < m); 46 }, 47 H = d => new Date (d.getFullYear (), d.getMonth (), d.getDate ()), 48 I = d => [('0' + d.getUTCHours ()).slice (-2), ('0' + d.getUTCMinutes ()).slice (-2)].join (':'); 49 50 //_____________ 51 52 53 class Shedule { 54 55 constructor (date = new Date, range = 7, plan = [ ], option = DEF_OPTION) { 56 this.current = H (date);//表の左端の日付、これを基準とする 57 this.date = H (date); 58 this.range = range; //何日分を表示するか 59 this.plan = plan; //予定表が構成される 60 this.table = document.createElement ('table'); 61 this.option = Object.assign ({ }, option); 62 63 this.remake (); 64 } 65 66 67 add (day = this.range) { 68 let d = H (this.current); 69 d.setDate (d.getDate () + day); 70 if (+this.date <= +d) 71 this.current = d; 72 return this; 73 } 74 75 76 setHoliday (...dayNo) { 77 let 78 year = this.current.getFullYear (), 79 start = new Date (year, 0, 1), 80 end = new Date (year, 12, 1), 81 82 b = new Date (Date.UTC (1970,0,1, 0, 0)),//列のスタート時間 83 e = new Date (Date.UTC (1970,0,1,24, 30)),//列の終了時間 84 s = new Date (Date.UTC (1970,0,1, 0,30));//列の感覚調整時間 85 86 dayNo.forEach (n => { 87 let current = new Date (start); 88 89 current.setDate (7 - current.getDate () + n); 90 91 for (; current < end; current.setDate (current.getDate () + 7)) { 92 let idx = F (current); 93 94 for (let c = b; c < e; c = new Date (+s + (+c))) { 95 let key = I (c); 96 if (! this.plan[key]) 97 this.plan[key] = [ ]; 98 this.plan[key][idx] = true; 99 } 100 } 101 }); 102 103 return this; 104 } 105 106 107 108 setLunchTime (...dayNo) { 109 let 110 year = this.current.getFullYear (), 111 start = new Date (year, 0, 1), 112 end = new Date (year, 12, 1), 113 114 b = new Date (Date.UTC (1970,0,1, 12, 0)),//列のスタート時間 115 e = new Date (Date.UTC (1970,0,1,13, 30)),//列の終了時間 116 s = new Date (Date.UTC (1970,0,1, 0,30));//列の感覚調整時間 117 118 dayNo.forEach (n => { 119 let current = new Date (start); 120 current.setDate (7 - current.getDate () + n); 121 122 for (; current < end; current.setDate (current.getDate () + 7)) { 123 let idx = F (current); 124 125 for (let c = b; c < e; c = new Date (+s + (+c))) { 126 let key = I (c); 127 if (! this.plan[key]) 128 this.plan[key] = [ ]; 129 this.plan[key][idx] = true; 130 } 131 } 132 }); 133 134 return this; 135 } 136 137 138 //Booking 139 setBook (date, occupancyTime) {// 予約日時,占有時間(分) 140 let 141 current = new Date (date), 142 dayNo = F (current), 143 sTime = 30,//30間隔 144 step = new Date (Date.UTC (1970,0,1, 0, sTime)), 145 cnt = Math.floor (occupancyTime / sTime); 146 147 for (let i = 0; i < cnt; i++) { 148 let time = D (current); 149 if (! this.plan[time]) 150 this.plan[time] = [ ]; 151 this.plan[time][dayNo] = true; 152 current.setTime (+current +(+step)); 153 } 154 return this; 155 } 156 157 remake () { 158 this.prev_btn = this.next_btn = null; 159 let t = this.table; 160 [...t.childNodes].forEach (e => e.remove ()); 161 162 let 163 h = t.createTHead (), 164 tr0 = h.insertRow (-1), 165 tr1 = h.insertRow (-1), 166 d = H (this.current), 167 s = tr0.insertCell (-1), 168 c = 1, 169 m = d.getMonth (); 170 171 for (let i = 0; i < this.range; i++, c++, B (d, 1)) { 172 let td = tr1.insertCell (-1); 173 if (m !== d.getMonth ()) { 174 s.colSpan = c - 1; 175 s = tr0.insertCell (-1); 176 m = d.getMonth (); 177 c = 1; 178 } 179 s.textContent = C (d); 180 E (td, d); 181 } 182 s.colSpan = c - 1; 183 184 let e = tr0.insertCell (0); 185 e.textContent = '前の一週間'; 186 e.classList.add ('button'); 187 e.rowSpan = 2; 188 this.prev_btn = e; 189 190 e = tr0.insertCell (-1); 191 e.textContent = '次の一週間'; 192 e.classList.add ('button'); 193 e.rowSpan = 2; 194 this.next_btn = e; 195 196 //__ 197 let 198 begin = new Date (Date.UTC (1970,0,1, 9, 0)),//列のスタート時間 199 end = new Date (Date.UTC (1970,0,1,15, 30)),//列の終了時間 200 step = new Date (Date.UTC (1970,0,1, 0,30)),//列の感覚調整時間 201 o = F (this.current), 202 rst = [ ]; 203 204 for (let d = begin; d < end; d = new Date (+step + (+d))) { 205 let 206 a = new Array (this.rangi), 207 b = I (d), 208 c = this.plan[b] || []; 209 210 for (let i = 0; i < this.range; i++) 211 a[i] = c[o + i] ? '-' : '◎'; 212 213 rst.push ([b, ...a, b]); 214 } 215 216 let [tb] = A (t, 'tbody'); 217 rst.forEach (r => { 218 let tr = tb.insertRow (-1); 219 r.forEach (c => tr.insertCell (-1).textContent = c) 220 }); 221 222 return this; 223 } 224 225 226 handleEvent (event) { 227 let t = event.target; 228 if (t === this.prev_btn) this.add (-this.range).remake (); 229 if (t === this.next_btn) this.add ( this.range).remake (); 230 231 let cbfunc = this.option.handleEvent; 232 if ('function' === typeof cbfunc) 233 cbfunc.call (this, event); 234 } 235 236 237 static convert (ary) { 238 let rst = { }; 239 ary.forEach (a => { 240 let 241 dt = new Date (a + ':00.000+09:00'), 242 tm = D (dt), 243 dn = F (dt); 244 if (! rst[tm]) 245 rst[tm] = []; 246 rst[tm][dn] = true; 247 }); 248 return rst; 249 } 250 251 } 252 253 this.Shedule = Shedule; 254} 255 256//_____________ 257function strDateJp (date) { 258 let [y, m, d] = ['getFullYear', 'getMonth', 'getDate'].map (fc => date[fc]()); 259 return `${y}${m+1}${d}`; 260} 261 262 263//___________________________ 264 265const 266 BUSY = ['2019-02-19T14:30', '2019-02-21T14:30'], 267 plan = Shedule.convert (BUSY), 268 shedule = new Shedule (new Date, 7, plan), 269 table = shedule.table; 270 271table.border = 1; 272//月水金を休日      昼休みがあるのが日火木土 273shedule.setHoliday (1, 3, 5).setLunchTime (0, 2, 4, 6)//..remake (); 274 275 //予約入った時 例) 2月24日 9時30 2時間コースと予約が入った時 276shedule.setBook (new Date (2019, 1, 19, 9, 30), 30).remake (); 277shedule.setBook (new Date (2019, 1, 24, 9, 30), 120).remake (); 278 279//shedule.remake (); //単独で表を更新 280document 281 .querySelector ('#calendar') 282 .appendChild (table) 283 .addEventListener ('click', shedule, false); 284 285document.getElementById ('acdn-target').value = strDateJp (shedule.current); 286 287</script> 288 289

投稿2019/02/17 16:20

編集2019/02/17 16:45
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nanase21

2019/02/18 08:23

ご回答していただきありがとうございます。 まだ、ご教示していただいたコードを理解するのは難しいですがconsole.logでデバッグをかけてどういう流れで処理がなされているか勉強させていただきたいと思います。 本当にありがとうございました。
nanase21

2019/03/02 11:26

先日は、本質問にお答えいただきありがとう御座いました。 ご教示いただいたコードを少しだけ弄り、DBのデータをカレンダーに反映させる実装を今しています。 またrailsで開発しているため、jsから直接DBのデーターを取ることが出来ないので一旦htmlのvalueをjsで取得し、カレンダーにDBのデーターを反映させています。その際に、getElementByIdでvalueを取ってきているためDBのデーターを一つしか取れずにいます。 色々、調べてみるとgetElementByIdではvalueのデーターを配列で取得することは出来ないと分かったのですがgetElementByIdで以外valueのデーターを取得する方法が分からずに困っています。 もし差支えがなければ、どのようにしたらDBのデーター全てをカレンダーに反映させれるかについてご教示いただけないでしょうか? 下記のurlにて新規に質問を立てさせて頂いたので、ご教示いただけると幸いです。 https://teratail.com/questions/177310
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問