回答編集履歴

3

リファクタリング

2018/05/28 03:37

投稿

euledge
euledge

スコア2404

test CHANGED
@@ -36,7 +36,9 @@
36
36
 
37
37
  $("input.option_item:checked").each(function(index, item){
38
38
 
39
- total_price = total_price + Number($(item).data('price'));
39
+ // total_price = total_price + Number($(item).data('price'));
40
+
41
+ total_price = total_price + $(item).data('price'); // Number不要でした。暗黙的に数値にしてくれます
40
42
 
41
43
  });
42
44
 
@@ -56,11 +58,15 @@
56
58
 
57
59
  if (option_item.prop('checked')) {
58
60
 
61
+ // total_price = total_price + Number(option_item.data('price'));
62
+
59
- total_price = total_price + Number(option_item.data('price'));
63
+ total_price = total_price + option_item.data('price');
60
64
 
61
65
  } else {
62
66
 
67
+ // total_price = total_price - Number(option_item.data('price'));
68
+
63
- total_price = total_price - Number(option_item.data('price'));
69
+ total_price = total_price - option_item.data('price');
64
70
 
65
71
  }
66
72
 

2

コード追加

2018/05/28 03:37

投稿

euledge
euledge

スコア2404

test CHANGED
@@ -27,6 +27,24 @@
27
27
 
28
28
 
29
29
  ``` js
30
+
31
+ let total = $("#total_price");
32
+
33
+ let total_price = Number(total.data("price"));
34
+
35
+ // 合計金額の初期化
36
+
37
+ $("input.option_item:checked").each(function(index, item){
38
+
39
+ total_price = total_price + Number($(item).data('price'));
40
+
41
+ });
42
+
43
+ total.data('price', total_price);
44
+
45
+ total.text(total_price.toLocaleString());
46
+
47
+
30
48
 
31
49
  // チェックボックスクリック時の処理
32
50
 

1

リンクの誤りを修正しました

2018/05/28 03:29

投稿

euledge
euledge

スコア2404

test CHANGED
@@ -62,4 +62,8 @@
62
62
 
63
63
 
64
64
 
65
- [https://jsfiddle.net/euledge/5qtbr0cz/](https://jsfiddle.net/euledge/5qtbr0cz/)
65
+ ~~[https://jsfiddle.net/euledge/5qtbr0cz/](https://jsfiddle.net/euledge/5qtbr0cz/)
66
+
67
+ ~~
68
+
69
+ [https://jsfiddle.net/euledge/1xpLz65t/](https://jsfiddle.net/euledge/1xpLz65t/)