回答編集履歴

1

コードブロックの言語の変更(html→javascript)

2019/05/24 06:16

投稿

kokok
kokok

スコア145

test CHANGED
@@ -1,435 +1,435 @@
1
+ ```javascript
2
+
3
+
4
+
5
+
6
+
7
+ for (var i = 0; i < $(".buy_itemu_menu").length; i++) {
8
+
9
+
10
+
11
+ var item_price = $(".buy_itemu_menu").eq(i).data(
12
+
13
+ "price");
14
+
15
+ var item_select = $(".buy_itemu_menu").eq(i).next(
16
+
17
+ "select").find("option:selected").data("num");
18
+
19
+
20
+
21
+ hairetu.push(item_price *item_select);
22
+
23
+
24
+
25
+ var a = $(".buy_itemu_menu");
26
+
27
+ console.log(a);
28
+
29
+
30
+
31
+ var b = a.eq(i);
32
+
33
+ console.log(b);
34
+
35
+
36
+
37
+ var c = b.next("select");
38
+
39
+ console.log(c);
40
+
41
+
42
+
43
+ var d = c.find("option:selected");
44
+
45
+ console.log(d);
46
+
47
+ var e = d.data("num"); console.log(e);
48
+
49
+ }
50
+
51
+
52
+
53
+ ```
54
+
55
+
56
+
57
+ for文の中に記載して実行してみました。
58
+
59
+ chromeのデベロッパーツールでconsole.logで中身を確認してみました。
60
+
61
+
62
+
63
+ 中身を確認してみて
64
+
65
+ $(".buy_itemu_menu") クラスの. eq(i) 何番目の  .next("select")
66
+
67
+ select要素の .find("option:selected") 選択されたoptionの .data("num"); データ属性の要素 だと理解しました。
68
+
69
+
70
+
71
+
72
+
73
+
74
+
1
75
  ```html
2
76
 
3
-
4
-
5
-
6
-
7
- for (var i = 0; i < $(".buy_itemu_menu").length; i++) {
8
-
9
-
10
-
11
- var item_price = $(".buy_itemu_menu").eq(i).data(
12
-
13
- "price");
14
-
15
- var item_select = $(".buy_itemu_menu").eq(i).next(
16
-
17
- "select").find("option:selected").data("num");
18
-
19
-
20
-
21
- hairetu.push(item_price *item_select);
22
-
23
-
24
-
25
- var a = $(".buy_itemu_menu");
26
-
27
- console.log(a);
28
-
29
-
30
-
31
- var b = a.eq(i);
32
-
33
- console.log(b);
34
-
35
-
36
-
37
- var c = b.next("select");
38
-
39
- console.log(c);
40
-
41
-
42
-
43
- var d = c.find("option:selected");
44
-
45
- console.log(d);
46
-
47
- var e = d.data("num"); console.log(e);
77
+ <!DOCTYPE html>
78
+
79
+ <html>
80
+
81
+ <head>
82
+
83
+ <meta charset="utf-8">
84
+
85
+ <title>jquery</title>
86
+
87
+ <link rel="stylesheet" href="style1.css">
88
+
89
+ </head>
90
+
91
+ <body>
92
+
93
+
94
+
95
+ <div id="wrapper">
96
+
97
+
98
+
99
+ <h1 id="h1">フォーム自動計算</h1>
100
+
101
+
102
+
103
+
104
+
105
+ <form class="form-horizon" method="post" action="">
106
+
107
+ <p>ご希望の項目の数を選択してください</p>
108
+
109
+
110
+
111
+ <div class="form-box">
112
+
113
+
114
+
115
+ <p class="buy_itemu_menu" data-price="2500">
116
+
117
+ 人力飛行機 <span class="kakaku">(定価 2,500円 / 会員価格 2,300円 )</span>
118
+
119
+ </p>
120
+
121
+
122
+
123
+ <select name="人力飛行機数量" style="width: 150px;">
124
+
125
+
126
+
127
+ <option data-num="0" value="0個" selected>0個</option>
128
+
129
+ <option data-num="1" value="1個">1個</option>
130
+
131
+ <option data-num="2" value="2個">2個</option>
132
+
133
+ <option data-num="3" value="3個">3個</option>
134
+
135
+ </select>
136
+
137
+ </div>
138
+
139
+
140
+
141
+ <div class="form-box">
142
+
143
+
144
+
145
+ <p class="buy_itemu_menu" data-price="1000">
146
+
147
+ ラーメン <span class="kakaku">(定価 1,000円 / 会員価格 8,00円 )</span>
148
+
149
+ </p>
150
+
151
+
152
+
153
+ <select name="人力飛行機数量" style="width: 150px;">
154
+
155
+
156
+
157
+ <option data-num="0" value="0個" selected>0個</option>
158
+
159
+ <option data-num="1" value="1個">1個</option>
160
+
161
+ <option data-num="2" value="2個">2個</option>
162
+
163
+ <option data-num="3" value="3個">3個</option>
164
+
165
+ </select>
166
+
167
+ </div>
168
+
169
+
170
+
171
+
172
+
173
+ <div class="form-box">
174
+
175
+
176
+
177
+ <p class="buy_itemu_menu" data-price="10000">
178
+
179
+ 時計 <span class="kakaku">(定価 10,000円 / 会員価格 9,500円 )</span>
180
+
181
+ </p>
182
+
183
+
184
+
185
+ <select name="人力飛行機数量" style="width: 150px;">
186
+
187
+
188
+
189
+ <option data-num="0" value="0個" selected>0個</option>
190
+
191
+ <option data-num="1" value="1個">1個</option>
192
+
193
+ <option data-num="2" value="2個">2個</option>
194
+
195
+ <option data-num="3" value="3個">3個</option>
196
+
197
+ </select>
198
+
199
+ </div>
200
+
201
+
202
+
203
+
204
+
205
+ <hr>
206
+
207
+ <div class="form-box">
208
+
209
+ <label for="item_price_total">小計:</label> <input
210
+
211
+ id="item_price_total" name="小計" value="0円" readonly>
212
+
213
+ </div>
214
+
215
+
216
+
217
+ <div class="form-box">
218
+
219
+ <label for="postage_price">送料:</label> <input id="postage_price"
220
+
221
+ class="" name="送料" value="300円" readonly> <span>※1発送につき300円(3,000円以上のご購入で送料無料)</span>
222
+
223
+ </div>
224
+
225
+
226
+
227
+
228
+
229
+ <div class="form-box">
230
+
231
+ <label for="total_price">合計金額:</label> <input id="total_price"
232
+
233
+ class="" name="合計金額" value="300円"
234
+
235
+ style="font-size: 150%; font-weight: bold; display: inline-block;"
236
+
237
+ readonly>
238
+
239
+ <div>
240
+
241
+ <label for="kaiinnkakaku">
242
+
243
+ <input id="kaiinnkakaku" type="checkbox" name="会員価格" value="チェック有">
244
+
245
+ 会員の方はチェックしてください。会員価格に変更されます。
246
+
247
+ </label>
248
+
249
+
250
+
251
+ </div>
252
+
253
+
254
+
255
+ </div>
256
+
257
+
258
+
259
+ <div class="submit-form">
260
+
261
+ <button id="form-check" type="submit" class="btn">送信(されません)</button>
262
+
263
+ </div>
264
+
265
+ </form>
266
+
267
+
268
+
269
+
270
+
271
+ </div>
272
+
273
+ <footer id = "footer">
274
+
275
+ <small class="copyright">footer</small>
276
+
277
+ </footer>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+ <script src="//code.jquery.com/jquery-3.4.1.min.js"></script>
286
+
287
+ <script>
288
+
289
+
290
+
291
+ $(function() {
292
+
293
+ $("select,#kaiinnkakaku").change(function(){
294
+
295
+ var hairetu = [];
296
+
297
+ for (var i = 0; i < $(".buy_itemu_menu").length; i++) {
298
+
299
+
300
+
301
+ var item_price = $(".buy_itemu_menu").eq(i).data(
302
+
303
+ "price");
304
+
305
+ var item_select = $(".buy_itemu_menu").eq(i).next(
306
+
307
+ "select").find("option:selected").data("num");
308
+
309
+
310
+
311
+ if(document.getElementById("kaiinnkakaku").checked == true){
312
+
313
+ if(item_price == 10000){
314
+
315
+
316
+
317
+ var item_price = 9500
318
+
319
+ }else if(item_price == 2500){
320
+
321
+ var item_price = 2300
322
+
323
+ }else if (item_price == 1000)
324
+
325
+ var item_price = 800
326
+
327
+ }
328
+
329
+
330
+
331
+ if(item_select > 0){
332
+
333
+
334
+
335
+ hairetu.push(item_price * item_select);
336
+
337
+
338
+
339
+ }else{
340
+
341
+ 0;
48
342
 
49
343
  }
50
344
 
51
345
 
52
346
 
347
+
348
+
349
+ /* var a = $(".buy_itemu_menu");
350
+
351
+ console.log(a);
352
+
353
+
354
+
355
+ var b = a.eq(i);
356
+
357
+ console.log(b);
358
+
359
+
360
+
361
+ var c = b.next("select");
362
+
363
+ console.log(c);
364
+
365
+
366
+
367
+ var d = c.find("option:selected");
368
+
369
+ console.log(d);
370
+
371
+
372
+
373
+ var e = d.data("num");
374
+
375
+ console.log(e);
376
+
377
+ */
378
+
379
+ }
380
+
381
+
382
+
383
+ var total = 0;
384
+
385
+ for (var j = 0; j < hairetu.length; j++) {
386
+
387
+ total += hairetu[j];
388
+
389
+
390
+
391
+ }
392
+
393
+
394
+
395
+ if(total >= 3000){
396
+
397
+ var postage = 0;
398
+
399
+
400
+
401
+ }else{
402
+
403
+ var postage = 300;
404
+
405
+
406
+
407
+ }
408
+
409
+
410
+
411
+ $("#item_price_total").val(total + "円");
412
+
413
+ $("#postage_price").val(postage + "円");
414
+
415
+ $("#total_price").val((total + postage) + "円");
416
+
417
+ });
418
+
419
+
420
+
421
+ });
422
+
423
+ </script>
424
+
425
+ </body>
426
+
427
+ </html>
428
+
429
+
430
+
53
431
  ```
54
432
 
55
-
56
-
57
- for文の中に記載して実行してみました。
58
-
59
- chromeのデベロッパーツールでconsole.logで中身を確認してみました。
60
-
61
-
62
-
63
- 中身を確認してみて
64
-
65
- $(".buy_itemu_menu") クラスの. eq(i) 何番目の  .next("select")
66
-
67
- select要素の .find("option:selected") 選択されたoptionの .data("num"); データ属性の要素 だと理解しました。
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
- ```html
76
-
77
- <!DOCTYPE html>
78
-
79
- <html>
80
-
81
- <head>
82
-
83
- <meta charset="utf-8">
84
-
85
- <title>jquery</title>
86
-
87
- <link rel="stylesheet" href="style1.css">
88
-
89
- </head>
90
-
91
- <body>
92
-
93
-
94
-
95
- <div id="wrapper">
96
-
97
-
98
-
99
- <h1 id="h1">フォーム自動計算</h1>
100
-
101
-
102
-
103
-
104
-
105
- <form class="form-horizon" method="post" action="">
106
-
107
- <p>ご希望の項目の数を選択してください</p>
108
-
109
-
110
-
111
- <div class="form-box">
112
-
113
-
114
-
115
- <p class="buy_itemu_menu" data-price="2500">
116
-
117
- 人力飛行機 <span class="kakaku">(定価 2,500円 / 会員価格 2,300円 )</span>
118
-
119
- </p>
120
-
121
-
122
-
123
- <select name="人力飛行機数量" style="width: 150px;">
124
-
125
-
126
-
127
- <option data-num="0" value="0個" selected>0個</option>
128
-
129
- <option data-num="1" value="1個">1個</option>
130
-
131
- <option data-num="2" value="2個">2個</option>
132
-
133
- <option data-num="3" value="3個">3個</option>
134
-
135
- </select>
136
-
137
- </div>
138
-
139
-
140
-
141
- <div class="form-box">
142
-
143
-
144
-
145
- <p class="buy_itemu_menu" data-price="1000">
146
-
147
- ラーメン <span class="kakaku">(定価 1,000円 / 会員価格 8,00円 )</span>
148
-
149
- </p>
150
-
151
-
152
-
153
- <select name="人力飛行機数量" style="width: 150px;">
154
-
155
-
156
-
157
- <option data-num="0" value="0個" selected>0個</option>
158
-
159
- <option data-num="1" value="1個">1個</option>
160
-
161
- <option data-num="2" value="2個">2個</option>
162
-
163
- <option data-num="3" value="3個">3個</option>
164
-
165
- </select>
166
-
167
- </div>
168
-
169
-
170
-
171
-
172
-
173
- <div class="form-box">
174
-
175
-
176
-
177
- <p class="buy_itemu_menu" data-price="10000">
178
-
179
- 時計 <span class="kakaku">(定価 10,000円 / 会員価格 9,500円 )</span>
180
-
181
- </p>
182
-
183
-
184
-
185
- <select name="人力飛行機数量" style="width: 150px;">
186
-
187
-
188
-
189
- <option data-num="0" value="0個" selected>0個</option>
190
-
191
- <option data-num="1" value="1個">1個</option>
192
-
193
- <option data-num="2" value="2個">2個</option>
194
-
195
- <option data-num="3" value="3個">3個</option>
196
-
197
- </select>
198
-
199
- </div>
200
-
201
-
202
-
203
-
204
-
205
- <hr>
206
-
207
- <div class="form-box">
208
-
209
- <label for="item_price_total">小計:</label> <input
210
-
211
- id="item_price_total" name="小計" value="0円" readonly>
212
-
213
- </div>
214
-
215
-
216
-
217
- <div class="form-box">
218
-
219
- <label for="postage_price">送料:</label> <input id="postage_price"
220
-
221
- class="" name="送料" value="300円" readonly> <span>※1発送につき300円(3,000円以上のご購入で送料無料)</span>
222
-
223
- </div>
224
-
225
-
226
-
227
-
228
-
229
- <div class="form-box">
230
-
231
- <label for="total_price">合計金額:</label> <input id="total_price"
232
-
233
- class="" name="合計金額" value="300円"
234
-
235
- style="font-size: 150%; font-weight: bold; display: inline-block;"
236
-
237
- readonly>
238
-
239
- <div>
240
-
241
- <label for="kaiinnkakaku">
242
-
243
- <input id="kaiinnkakaku" type="checkbox" name="会員価格" value="チェック有">
244
-
245
- 会員の方はチェックしてください。会員価格に変更されます。
246
-
247
- </label>
248
-
249
-
250
-
251
- </div>
252
-
253
-
254
-
255
- </div>
256
-
257
-
258
-
259
- <div class="submit-form">
260
-
261
- <button id="form-check" type="submit" class="btn">送信(されません)</button>
262
-
263
- </div>
264
-
265
- </form>
266
-
267
-
268
-
269
-
270
-
271
- </div>
272
-
273
- <footer id = "footer">
274
-
275
- <small class="copyright">footer</small>
276
-
277
- </footer>
278
-
279
-
280
-
281
-
282
-
283
-
284
-
285
- <script src="//code.jquery.com/jquery-3.4.1.min.js"></script>
286
-
287
- <script>
288
-
289
-
290
-
291
- $(function() {
292
-
293
- $("select,#kaiinnkakaku").change(function(){
294
-
295
- var hairetu = [];
296
-
297
- for (var i = 0; i < $(".buy_itemu_menu").length; i++) {
298
-
299
-
300
-
301
- var item_price = $(".buy_itemu_menu").eq(i).data(
302
-
303
- "price");
304
-
305
- var item_select = $(".buy_itemu_menu").eq(i).next(
306
-
307
- "select").find("option:selected").data("num");
308
-
309
-
310
-
311
- if(document.getElementById("kaiinnkakaku").checked == true){
312
-
313
- if(item_price == 10000){
314
-
315
-
316
-
317
- var item_price = 9500
318
-
319
- }else if(item_price == 2500){
320
-
321
- var item_price = 2300
322
-
323
- }else if (item_price == 1000)
324
-
325
- var item_price = 800
326
-
327
- }
328
-
329
-
330
-
331
- if(item_select > 0){
332
-
333
-
334
-
335
- hairetu.push(item_price * item_select);
336
-
337
-
338
-
339
- }else{
340
-
341
- 0;
342
-
343
- }
344
-
345
-
346
-
347
-
348
-
349
- /* var a = $(".buy_itemu_menu");
350
-
351
- console.log(a);
352
-
353
-
354
-
355
- var b = a.eq(i);
356
-
357
- console.log(b);
358
-
359
-
360
-
361
- var c = b.next("select");
362
-
363
- console.log(c);
364
-
365
-
366
-
367
- var d = c.find("option:selected");
368
-
369
- console.log(d);
370
-
371
-
372
-
373
- var e = d.data("num");
374
-
375
- console.log(e);
376
-
377
- */
378
-
379
- }
380
-
381
-
382
-
383
- var total = 0;
384
-
385
- for (var j = 0; j < hairetu.length; j++) {
386
-
387
- total += hairetu[j];
388
-
389
-
390
-
391
- }
392
-
393
-
394
-
395
- if(total >= 3000){
396
-
397
- var postage = 0;
398
-
399
-
400
-
401
- }else{
402
-
403
- var postage = 300;
404
-
405
-
406
-
407
- }
408
-
409
-
410
-
411
- $("#item_price_total").val(total + "円");
412
-
413
- $("#postage_price").val(postage + "円");
414
-
415
- $("#total_price").val((total + postage) + "円");
416
-
417
- });
418
-
419
-
420
-
421
- });
422
-
423
- </script>
424
-
425
- </body>
426
-
427
- </html>
428
-
429
-
430
-
431
- ```
432
-
433
433
  上記のコードでなんとか
434
434
 
435
435
  jQueryの 選択された商品の合計を表示 することができました。