回答編集履歴

1

セレクトボックスのJavaScriptによる動的変更を追加。HTMLの出力結果を削除。

2016/07/20 07:47

投稿

A-pZ
A-pZ

スコア12011

test CHANGED
@@ -148,7 +148,75 @@
148
148
 
149
149
  </s:iterator>
150
150
 
151
+ };
152
+
153
+
154
+
155
+ var changeYear = function() {
156
+
157
+ // yearsセレクトボックスで選んだ値を取得
158
+
159
+ var selectedValue = document.getElementById("years").value;
160
+
161
+
162
+
163
+ // 月別セレクトボックスに表示する月一覧を抽出
164
+
165
+ var months = yearMonth[selectedValue];
166
+
167
+
168
+
169
+ // 月のセレクトボックスを洗い替え
170
+
171
+ replaceMonths(months);
172
+
173
+ };
174
+
175
+
176
+
177
+ var replaceMonths = function(months) {
178
+
179
+ // optionを全削除
180
+
181
+ var monthsNode = document.getElementById("months")
182
+
183
+ if ( monthsNode !== null ) {
184
+
185
+ for ( i=monthsNode.childNodes.length;i>0;i--) {
186
+
187
+ monthsNode.removeChild(monthsNode.childNodes[i-1]);
188
+
151
- }
189
+ }
190
+
191
+ }
192
+
193
+
194
+
195
+ // option要素を再作成
196
+
197
+ for ( i=0;i<months.length;i++ ) {
198
+
199
+ var optionNode = document.createElement('option');
200
+
201
+ optionNode.setAttribute('value',months[i]);
202
+
203
+ var text = document.createTextNode(months[i]);
204
+
205
+ optionNode.appendChild(text);
206
+
207
+ monthsNode.appendChild(optionNode);
208
+
209
+ }
210
+
211
+ };
212
+
213
+
214
+
215
+ window.onload = function() {
216
+
217
+ changeYear();
218
+
219
+ };
152
220
 
153
221
  </script>
154
222
 
@@ -177,207 +245,3 @@
177
245
  ```
178
246
 
179
247
 
180
-
181
- 出力されるHTML
182
-
183
- ```html
184
-
185
- <!DOCTYPE>
186
-
187
- <html>
188
-
189
- <head>
190
-
191
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
192
-
193
- <title>Insert title here</title>
194
-
195
- <script>
196
-
197
- var yearMonth = {
198
-
199
-
200
-
201
- '2017': [
202
-
203
-
204
-
205
- '4' ,
206
-
207
-
208
-
209
- '5' ,
210
-
211
-
212
-
213
- '6' ,
214
-
215
-
216
-
217
- '7' ,
218
-
219
-
220
-
221
- '8' ,
222
-
223
-
224
-
225
- '9' ,
226
-
227
-
228
-
229
- '10' ,
230
-
231
-
232
-
233
- ] ,
234
-
235
-
236
-
237
- '2016': [
238
-
239
-
240
-
241
- '1' ,
242
-
243
-
244
-
245
- '2' ,
246
-
247
-
248
-
249
- '3' ,
250
-
251
-
252
-
253
- '4' ,
254
-
255
-
256
-
257
- ] ,
258
-
259
-
260
-
261
- '2015': [
262
-
263
-
264
-
265
- '9' ,
266
-
267
-
268
-
269
- '10' ,
270
-
271
-
272
-
273
- '11' ,
274
-
275
-
276
-
277
- '12' ,
278
-
279
-
280
-
281
- ] ,
282
-
283
-
284
-
285
- }
286
-
287
- </script>
288
-
289
- </head>
290
-
291
- <body>
292
-
293
-
294
-
295
- '2017': [
296
-
297
-
298
-
299
- '4' ,
300
-
301
-
302
-
303
- '5' ,
304
-
305
-
306
-
307
- '6' ,
308
-
309
-
310
-
311
- '7' ,
312
-
313
-
314
-
315
- '8' ,
316
-
317
-
318
-
319
- '9' ,
320
-
321
-
322
-
323
- '10' ,
324
-
325
-
326
-
327
- ] ,
328
-
329
-
330
-
331
- '2016': [
332
-
333
-
334
-
335
- '1' ,
336
-
337
-
338
-
339
- '2' ,
340
-
341
-
342
-
343
- '3' ,
344
-
345
-
346
-
347
- '4' ,
348
-
349
-
350
-
351
- ] ,
352
-
353
-
354
-
355
- '2015': [
356
-
357
-
358
-
359
- '9' ,
360
-
361
-
362
-
363
- '10' ,
364
-
365
-
366
-
367
- '11' ,
368
-
369
-
370
-
371
- '12' ,
372
-
373
-
374
-
375
- ] ,
376
-
377
-
378
-
379
- </body>
380
-
381
- </html>
382
-
383
- ```