回答編集履歴

1

具体的なコードを追加しました

2020/07/11 06:44

投稿

PgMidori
PgMidori

スコア184

test CHANGED
@@ -37,3 +37,103 @@
37
37
 
38
38
 
39
39
  今書かれてらっしゃるjavascriptの処理だけで実現可能(新たな記法、メソッド等は必要ない)ですので考えてみてください。
40
+
41
+
42
+
43
+ **----- 以下コメントを受けて追記 -----**
44
+
45
+ 一番シンプルな方法としては、以下のようになるかと思います。
46
+
47
+ ```javascript
48
+
49
+ $(function () {
50
+
51
+ // 最初に「セレクトボックスが変更された時に行う処理」と全く同じ処理を行って文字色を変更する
52
+
53
+ /* ここで$(this)を使うとhtml全体(厳密にはdocument要素)が取得されてしまうので
54
+
55
+ 明示的に$("#color")と指定する*/
56
+
57
+ if ($("#color").val() == "red") {
58
+
59
+ $("#comment").css("color", "#ff0000");
60
+
61
+ }
62
+
63
+ if ($("#color").val() == "blue") {
64
+
65
+ $("#comment").css("color", "#0000ff");
66
+
67
+ }
68
+
69
+
70
+
71
+ // セレクトボックスが変更されたときにdivの文字色を変える処理
72
+
73
+ $("#color").on('change', function () {
74
+
75
+ if ($(this).val() == "red") {
76
+
77
+ $("#comment").css("color", "#ff0000");
78
+
79
+ }
80
+
81
+ if ($(this).val() == "blue") {
82
+
83
+ $("#comment").css("color", "#0000ff");
84
+
85
+ }
86
+
87
+ });
88
+
89
+ });
90
+
91
+ ```
92
+
93
+
94
+
95
+ 同じ処理なので、関数にまとめて以下のようにしてもいいかもしれません。
96
+
97
+ ```javascript
98
+
99
+ $(function () {
100
+
101
+ // 最初に「セレクトボックスが変更された時に行う処理」と全く同じ処理を行って文字色を変更する
102
+
103
+ /* ここで$(this)を使うとhtml全体(厳密にはdocument要素)が取得されてしまうので
104
+
105
+ 明示的に$("#color")と指定する*/
106
+
107
+ setColor($("#color").val());
108
+
109
+
110
+
111
+ // セレクトボックスが変更されたときにdivの文字色を変える処理
112
+
113
+ $("#color").on('change', function () {
114
+
115
+ setColor($(this).val());
116
+
117
+ });
118
+
119
+ });
120
+
121
+
122
+
123
+ function setColor(colorName) {
124
+
125
+ if (colorName == "red") {
126
+
127
+ $("#comment").css("color", "#ff0000");
128
+
129
+ }
130
+
131
+ if (colorName == "blue") {
132
+
133
+ $("#comment").css("color", "#0000ff");
134
+
135
+ }
136
+
137
+ }
138
+
139
+ ```